一段时间没写,又忘了,晕。。。设计模式这种东西一定要经常用。
装饰者模式(Decorator)用于动态地给一个对象增加一些额外的职责,就增加功能来说,他比生成子类更为灵活。
装饰者模式的原则是:
能用组合就用组合,而不用继承
在运行时才确定添加的方法
UML类图:
/* -------------------------
* ------- 分割线 ----------
* ------------------------- */
代码:
///Component: ///定义一个对象接口,可以给这些对象动态地添加职责。 public interface Component{ void operation(); }
///Concrete Component: ///定义一个对象,可以给这个对象添加一些职责。 public class ConcreteComponent implements Component { public void operation() { // Write your code here } }
/// 装饰者父类, 默认直接调用component的方法 public class Decorator implements Component{ public Decorator(Component component){ this.component = component; } public void operation(){ component.operation(); } private Component component; } /// 以后的装饰者子类,重写父类的operator()方法,在里面加入自己的东西即可。
/* --- 完 --- */
设计模式理解(八)结构型——装饰者模式(记得加上UML图 --- 未完)
原文:http://www.cnblogs.com/myjhaha/p/5235913.html