装饰设计模式

  • 定义

  动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。

  • 设计

  通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。

  通俗地讲,就是改写已存在的类的某个方法或某些方法,装饰设计模式(包装模式)。

  • 实现步骤

  (1)编写一个类,实现与被包装类相同的接口。(具备相同的行为),此步骤的关键是弄清楚开发中你需要尽心包装的是哪一个类。(通过类对象的需求功能可得);

  (2)定义一个被包装类类型的变量;

  (3)定义构造方法,把被包装类的对象注入,给被包装类变量赋值;

  (4)对于不需要改写的方法,调用原有的方法。

  (5)对于需要改写的方法,写自己的代码。

posted @ 2017-08-16 15:53  一介草民李八千  阅读(106)  评论(0)    收藏  举报