标签:name nis 对象 高性能 keyword 装饰类 http def 单例
之前我们所说的都是节点流,Java当中的节点流就是直接与数据源交互的程序。为了提升性能、操作方便需要进行装饰处理

高内聚,低耦合--->常见的设计模式有:单例、工厂、装饰、代理...
组织代码的固定模式和套路--->固定类、方法等设计
抽象组件--->相当于接口、抽象父类等
具体的组件--->需要装饰的对象
抽象装饰类--->包含了组件的引用,以及装饰着共有的方法
具体装饰类--->被装饰的对象
IO流当中的装饰是为了后期处理数据类型、对象、缓冲的时候提高性能,方便后期操作
抽象组件:
/**
 * 定义一个接口,里面定义了声音的具体实现方法
 */
interface Say{
    void say();
}
具体组件:
/**
 * 定义一个接口,里面定义了声音的具体实现方法
 */
interface Say{
    void say();
}
?
/**
 * 定义一个Person类,实现接口
 */
class Person implements Say{
    //定义该类有的属性
    private int voice = 10;
?
    //写一个setBean方法
    public void setVoice(int voice) {
        this.voice = voice;
    }
?
    //写一个getBean方法
    public int getVoice() {
        return voice;
    }
?
    //实现接口的方法
    
抽象装饰类:
/*
这个项目中无
*/
具体装饰器:
/**
 * 放大器类,放大声音
 */
class Amplifer implements Say{
    /*实现对人声音的装饰*/
    private Person p;
    /*将这个放大属性放入构造器当中*/
    Amplifer(Person p){
        this.p = p;
    }
?
    /*实现接口的方法*/
    
抽象组件--->接口、抽象父类,需要装饰的抽象对象
/**
 * 抽象组件--->接口
 */
interface Drink{
    /*费用*/
    double cost();
    /*说明*/
    String info();
}
具体的组件--->需要装饰的对象--->具体来说就是上个代码的Person类
/**
 * 具体组件-->咖啡
 */
class Coffee implements Drink{
    /*定义类属性*/
    private String name = "原味咖啡";
?
    /*重写接口当中的方法*/
    
抽象装饰类:包含了对抽象组件的引用,以及装饰着共有的方法
/**
 * 抽象装饰类--->相当于牛奶和糖
 */
abstract class Decorate implements Drink{
    //对抽象组件的引用
    private Drink drink;
    /*将引用写入构造器中*/
    public Decorate(Drink drink){
        this.drink = drink;
    }
?
    
具体的装饰类:被装饰的对象
/**
 * 具体的装饰类--->牛奶
 */
class Milk extends Decorate {
?
    public Milk(Drink drink) {
        super(drink);
    }
?
    /*对其重写抽象类当中的方法*/
    
标签:name nis 对象 高性能 keyword 装饰类 http def 单例
原文地址:https://www.cnblogs.com/JunkingBoy/p/14787051.html