本文所有栗子来源于老师课件

                                                              Structural patterns 结构型模式

(1)Adapter  适配器模式

将某个类/接口转换为client期望的其他形式

通过增加一个接口,将已存在的子类封装起来,client面向接口编程,从而隐藏了具体子类。

Java Design Patterns for Reuse

(2)Decorator 装饰器模式

为对象增加不同侧面的特性

为每一个特性构造子类,通过委派机制增加到对象上

Java Design Patterns for Reuse

Java Design Patterns for Reuse

(3)Facade 外观模式

客户端需要一个简化的接口访问复杂系统内的功能

提供一个统一的接口来取代一系列小接口的调用,相当于对复杂系统做了一个封装,简化客户端使用

                                                Behavioral patterns 行为类模式

(1) Strategy  策略模式

优点:易于扩展的新算法实现,将算法与客户端上下文分离

Java Design Patterns for Reuse

(2) Template Method 模板模式

 做事情的步骤一样,但具体方法不同。共性的步骤在抽象类内公共实现,差异化的步骤在各个子类中实现。使用继承和重写实现模板模式

Java Design Patterns for Reuse

(3) Iterator 迭代器模式

抽象迭代器类定义遍历协议
每个聚合类的具体迭代器子类
聚集实例创建迭代器对象的实例

聚集实例保持对迭代器对象的引用

Java Design Patterns for Reuse

Java Design Patterns for Reuse

总结:

Structural patterns 结构模式
Adapter:允许具有不兼容接口的类通过围绕已存在类的接口包装自己的接口来协同工作。
Decorator:在对象的现有方法中动态地添加/重写行为。
Facade:为大量代码提供一个简化的接口。


Behavioral patterns行为模式

Strategy:允许在运行时动态选择一个算法家族中的一个。
Template method:将算法的框架定义为一个抽象类,允许其子类提供具体的行为。
Iterator按顺序访问对象的元素,而不暴露其底层表示。


相关文章: