zoukankan      html  css  js  c++  java
  • 装饰者模式

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


    /**接口定义一个方法
    * 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();
    }
    }
    使用场景:
    ● 需要扩展一个类的功能,或给一个类增加附加功能。
    ● 需要动态地给一个对象增加功能,这些功能可以再动态地撤销。
    ● 需要为一批的兄弟类进行改装或加装功能,当然是首选装饰模式。
  • 相关阅读:
    error: conflicting type qualifiers for 'xxxxx'
    每天进步一点点——负载均衡之DNS域名解析
    hdu 1348 Wall(凸包模板题)
    offsetTop和scrollTop的差别
    OnContextMenu事件
    写给即将面临毕业的程序猿们
    hibernate uniqueResult方法
    UpdatePanel的用法
    Spring MVC 3 深入总结
    优麒麟(UbuntuKylin)不是国产Linux操作系统
  • 原文地址:https://www.cnblogs.com/sallyiszxm/p/10996455.html
Copyright © 2011-2022 走看看