一段时间没写,又忘了,晕。。。设计模式这种东西必定要常常用。设计模式
装饰者模式(Decorator)用于动态地给一个对象增长一些额外的职责,就增长功能来讲,他比生成子类更为灵活。this
装饰者模式的原则是:spa
能用组合就用组合,而不用继承设计
在运行时才肯定添加的方法code
UML类图:component
/* -------------------------对象
* ------- 分割线 ----------blog
* ------------------------- */继承
代码:接口
///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()方法,在里面加入本身的东西便可。
/* --- 完 --- */