Java_基础—装饰设计模式

package com.soar.chario;

public class Demo6_Wrap {
    /*
     * 装饰设计模式的好处是:
     * 耦合性不强,被装饰的类的变化与装饰类无关
     */
    public static void main(String[] args) {
        SoarStudent ss = new SoarStudent(new Student());
        ss.code();
    }

}

interface Coder{
    public void code();
}

class Student implements Coder{

    @Override
    public void code() {
        System.out.println("javase");
        System.out.println("javaweb");
    }
}

class SoarStudent implements Coder{
    //① 获取被装饰类的引用
    private Student s;          //获取学生引用

    //② 在构造方法中传入被装饰类的对象
    public SoarStudent(Student s){
        this.s = s;
    }

    //③ 对原有的功能进行升级
    @Override
    public void code() {
        s.code();
        System.out.println("ssh");
        System.out.println("数据库");
        System.out.println("大数据");
        System.out.println("...");
    }
}
posted @ 2017-07-25 20:56  Soar_Sir  阅读(78)  评论(0编辑  收藏  举报