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