结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
装饰者模式
 
动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。
 


/**接口定义一个方法
* Created by Administrator on 2019/6/10.
*/
public interface Waiter {
void service();
}

/**子类实现接口的方法
* Created by Administrator on 2019/6/10.
*/
public class Waitress implements Waiter {
@Override
public void service() {
System.out.println("在服务。。。");
}
}

/**装饰类实现接口
* Created by Administrator on 2019/6/10.
*/
public class WaitreeWrap implements Waiter {

//声明Waiter对象
Waiter waiter=null;
//在构造函数中有个有参数的方法
public WaitreeWrap(Waiter waiter){
this.waiter=waiter;
}
@Override
public void service() {
//在重写方法的基础添加额外的功能
System.out.println("微笑");
waiter.service();
}
}

/**
* Created by Administrator on 2019/6/10.
*/
public class Test {
public static void main(String[] args) {
WaitreeWrap ns=new
WaitreeWrap(new Waitress());
ns.service();
}
}
使用场景:
● 需要扩展一个类的功能,或给一个类增加附加功能。
● 需要动态地给一个对象增加功能,这些功能可以再动态地撤销。
● 需要为一批的兄弟类进行改装或加装功能,当然是首选装饰模式。
posted on 2019-06-10 10:45  sallyiszxm  阅读(162)  评论(0编辑  收藏  举报