像web的 显示元素等,都是那种需要整体和部分具有使用接口上的一定的一致性的需求的结构,实际上,我觉得这样的系统如果不使用Composite模 式将会是惨不忍睹的。
实现:该模式的实现主要就是要表示整体或部分的所有类都继承自同一的基类或接口,从而拥有使用接口上一定的一致性。
重构成本:高。
2.4Decorator
思想:为一个对象已有的子类添加一些额外的职责。
场景:该模式的使用场景,主要是有的时候我们不愿意定义逻辑上新的子类,因为没有新的逻辑含义上的子类概念,而只是想为一个已存在的子类附加 一些职责。
实现:该 模式的实现主要就是定义一个物理上的新的子类,但是,它只是包含要附加职责的类,传递外部对相同接口的调用,在这个传递调用的通道上附加额外的功能。突然 想到,Decorator模式是不是一定程度上也能代替DynamicProxy模 式,从而成为一种AOP实现的方案呢?
重构成本:低。定义一个Decorator和一个已有类的逻辑上的子类,物理 表现形式上都是一个子类,重构也确实不是难事。