java中的装饰设计模式

装饰设计模式也成为包装模式,属于结构性设计模式。该模式也是继承关系的替代方法之一,对比继承的优点是装饰模式的低耦合性,被装饰类的变化与装饰类无关。

装饰设计模式,就是动态的给对象添加一些额外的功能。比如一个毛坯房,可以装修成不同的风格以达到不同的功能,如中式、欧式等。

java IO中很多用到装饰设计模式,比如BufferedReader、BufferedWriter
步骤:

  • 获取被装饰类的引用
  • 在构造方法中传入被装饰类的对象
  • 对原有的功能进行升级
public class Demo {
    public static void main(String[] args){
        SuperStudent superStudent = new SuperStudent(new Student ());
        superStudent.code();
    }
}

interface Coder{
    public void code();
}

class Student implements Coder{
    @Overvide
    public void code(){
        System.out.println("会java");
        System.out.println("会php");
    }
}

class SuperStudent implements Coder{
    //获取被装饰类的引用
    private Student s;
    //在构造方法中传入被装饰类的对象
    public SuperStudent (Student s){
        this.s=s;
    }
    //对原有的功能进行升级
    @Overvide
    public void code(){
        s.code();
        System.out.println("会python");
        System.out.println("会JavaScript");
    }
}


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容