一段时间没写,又忘了,晕。。。设计模式这种东西一定要经常用。
装饰者模式(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()方法,在里面加入自己的东西即可。
/* --- 完 --- */