行为型(类和对象进行交互和怎么分配职责)
职责链模式:避免请求的发送者和接受者耦合在一起,让多个对象都有可能接受请求,
将对象连接成一条链,沿着这条链传递请求
实例 :假条审批
命令模式:将请求封装为一个对象,对客户参数化,对请求排队,记录,支持可撤销操作
实例:电视遥控器
解释器(类):定义一个语言的文法,建立解释器来解释该语言中的句子
实例:数学运算解释器,抽象语法树
迭代器:提供一种访问聚合对象的方法,不用暴露内部表示
实例:电视遥控器(频道)
中介者:用一个中介者对象封装一系列对象的交互,中介者使对象之间不会显示的引用,松耦合
可以独立的改变它们之间的交互(迪米特法则典型)
实例:虚拟聊天室
备忘录:不破坏封装的情况下,捕获一个对象的内部状态,在该对象之外保存这个状态,以后
将对象恢复到原先保存的状态
实例:用户撤销信息
观察者模式:定义一对多依赖关系,使得每当对象状态变化时,其相关依赖对象皆得到通知
实例:猫狗老鼠
状态模式:允许一个对象在其内部状态改变时改变它的行为
实例:论坛用户等级
策略模式:定义一系列算法,将每个算法封装起来,并让它们可以相互替换
实例:排序策略
模板方法模式(类行为):定义一个操作中算法的框架,将一些步骤延迟到子类中,不改变
算法的结构即可重定义该算法的某些特定步骤
实例:银行业务办理
访问者模式:不改变各元素的类的前提下定义作用于这些元素的新操作
实例:购物车