作者eclipse 可能你已经在用Decorator模式了但是跟所有其他模式一样知道你为什么使用它学习使用它跟别的开发者沟通是很重要的 Decorator模式即Wrapper模式其强制控制作用是在不改动一个类的代码或者不破坏一个类的接口的情况下为该类添加功能当你想一个类具有更多功能的时候使用Decorator模式意味着增加功能后的版本不一定要通过扩展类来重用现有功能 假定有一个叫做Action的接口有两个方法act()act()这个接口有一个具体版本ConcreteActionDecorator将会是一个实现Action的类其构造器有一个Action(通常是ConcreteAction)所以代码如下 public class ActionDecorator implements Action { private Action action; public ActionDecorator(Action action) { thisaction = action; } public void act() { actionact(); } public void act() { // do nothing } } 使用Decorator比使用继承产生更少的类所以其代码比较简单但是它通常产生更多的对象将导致调试难度增加尤其是因为它增加了灵活度可能会引入新的错误 |