软件构造4.3
软件构造4.3
structural patterns 结构型模式
adapter 适配器模式
将某个类或接口转换为client期望的其他形式,通过增加一个接口,将已存在的子类封装起来,client面向接口编程,从而隐藏了具体子类。
decorator装饰器模式
用于为对象增加不同侧面的特征,对于每一个特性构造子类,通过委派机制增加到对象上、
facade外观模式
客户端需要通过对一个简化的接口来访问复杂系统内的功能,提供一个统一的接口来取代一系列小接口调用,相当于对复杂的系统做了一个封装,简化客户端使用。
behavioral patterns行为类模式
strategy 策略模式
有多种不同的算法来实现同一个任务,但需要client根据需要动态切换算法,而不是写死在代码里,为不同的实现算法构造抽象接口,利用delegation,运行时动态传入client倾向的算法类实例
template method 模板模式
做事情的步骤一样,但是具体方法不同,共性的步骤在抽象类中公共实现,差异化的步骤在各个子类中实现。
使用继承和重写实现模板模式
iterator 迭代器
客户端希望遍历被放入容器或者集合类的一组ADT对象,无需关心容器的具体类型,也就是说,不管对象被放进哪里,都应该提供相同的遍历方式。
迭代器按顺序访问对象的元素,而不公开其底层表示。