【目的】
Teplate Method: 稳定结构,替换具体步骤
Command: 行为静态化,把 “对象.方法” 封装成对象实体
Interpreter: 重复出现的复杂问题(可以分解成有限的细小问题),定义解释器(分解大问题,解决小问题)和描述方式
Mediator: 多个对象协同工作,把协同的部分封装出来,交给中介对象协调完成
Iterator: 专门为集合对象提供的“透明遍历子对象方法”(.net用IEnumerable接口和foreach语句倾力支持)
Observer: 将"行为调用"实例化(利用Command模式),使“行为调用”变成动态(从宏观上就是被调用对象观察调用对象)
Chain Of Responsibility: 分支语句中,将每个条件和对应操作封装成对象,并动态指定它们的先后处理关系
Memento: 提供“镜像”功能,方便对象随时恢复状态
State: 对象的行为随状态改变,将它的每个状态和行为封装成具体状态对象,由原对象引用
Strategy: 对象在实现行为时,算法有多种选择,将每一种算法封装成一个算法对象,由原对象引用
Visitor: 类的结构稳定,兄弟类统一增加新行为,将所有类新行为的实现封装到一个Visitor对象中,原兄弟类用Accept方法去指定的Visitor对象中寻找适合自己的方法并执行。
【核心】
解决在不同背景下,对象之间的职责分配和如何通信的问题