动词 同样行为 不同方式 :策略模式(同一行为不同算法)
动词 同样对象 添加行为 :装饰模式(添加行为)
1 封装变化 多用组合
2 组合+策略模式增加类的行为
如何来添加功能,以处理更为复杂的事情呢?你可能会想到用继承。不错,继承确实可以解决问题,但是继承也带来更大的问题,它对每一个功能,都需要一个子类 来实现。比如,我先实现了三个子类,分别用来处理文件,缓冲,和读入/写出数据,但是,如果我需要一个既能处理文件,又具有缓冲功能的类呢?这时候又必须 在进行一次继承,重写代码。实际上,仅仅这三种功能的组合,就已经是一个很大的数字,如果再加上其它的功能,组合起来的IO类库,如果只用继承来实现的 话,恐怕你真的是要被它折磨疯了。
Decorator模式可以解决这个问题。Decorator字面的意思是装饰的意思,在原有的基础上,每添加一个装饰,就可以增加一种功能。
5 Party模式
在这一章中,首先我们接触到是是Party模式,在进行系统分析和概念模型设计的时候,经常发现人和各种各样的组织有着同样的行为,例如,固定电话的计费 可能是针对个人,也可能是一个单位;需要各种服务的时候,你可能求助于一个服务公司,或者服务公司一个特定的业务员。总之,因为人(Person)和组织 (Organization)表现上的一致性