装饰设计模式和继承之间的区别

来源:互联网 发布:淘宝店铺被屏蔽怎么办 编辑:程序博客网 时间:2024/06/06 10:01

这里记录自己学习过程中的装饰设计模式。

什么是装饰设计模式:

当想要对已有的对象进行功能增强时,
可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。
那么自定义的该类称为装饰类。

装饰类通常会通过构造方法接收被装饰的对象。
并基于被装饰的对象的功能,提供更强的功能。


//共同的接口interface Coder {    public void code();}
//被装饰类class Student implements Coder {    @Override    public void code() {        System.out.println("javase");        System.out.println("javaweb");    }}
//装饰类
class TraineerStudent implements Coder {    private Student s;//获取到被包装的类的引用    public TraineerStudent(Student s) {//通过构造函数创建对象的时候,传入被包装的对象        this.s = s;    }    @Override    public void code() {//对其原有功能进行升级        s.code();        System.out.println("数据库");        System.out.println("ssh");        System.out.println("安卓");        System.out.println(".....");    }} 

以上只是简单说明一下,在JAVA IO中用了很多增强 如:FileRead中read()方法 只是一个一个字节去读,为了读得更快在BufferedReader就增强了read()方法而产生了reandLine()一行一行的去读。

与继承之间的区别:

装饰模式比继承要灵活。避免了继承体系臃肿。而且降低了类于类之间的关系(耦合性)。

装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强功能。所以装饰类和被装饰类通常是都属于一个体系中的。

                                             
0 0
原创粉丝点击