设计模式之行为型模式
1、什么是行为型模式
行为型模式设计到算法和对象间的职责分配,不仅描述对象或类的模式,还描述它们之间的通信方式,刻划了运行时难以跟踪的复杂的控制流,它们将你的注意力从控制流转移到对象间的关系上来。
2、详细分类:对象行为型模式(对象复合而不是继承。一些行为对象模式描述了一组相互对等的对象如何相互协作以完成其中任何一个对象都单独无法完成的任务),类行为型模式(行为型类模式采用继承机制在类间分派行为)
3、具体
A、观察者模式:(对象行为模式)观察者通过观察通知者,一旦通知者状态发生改变,观察者将改变自己的状态(一个对象发生变化另一个对象也需要改变时)
B、模板方法模式:(类行为模式)一次性实现一个算法的不变部分,提取公共行为,避免代码重复,将可变算法或者单独行为交给子类实现
C、命令模式:(对象行为模式)调用操作和知道如何操作的对象解耦,可以对用户请求进行排队或记录请求日志,支持撤销说明
D、状态模式:(对象行为模式)对象行为取决于他的状态,并且必须在运行时根据状态改变其行为,为了防止庞大的多分支条件语句(分支依赖于对象的状态),这样就把每个条件分支定义为单独的类,使得对象独立!
E、职责链模式:(对象行为模式)有多个对象可以处理一个请求,但是由哪个对象处理该请求需要在运行时通过系统自行判断进行确定(对聚合对象的遍历)
F、解释器模式:(类行为模式)当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式
G、中介者模式:(对象行为模式)希望通过一个中介者对象来完成对多个对象的关系的管理。
H、访问者模式:(对象行为模式)操作与对象的分离,追求的是对象的重用和简单,以及操作的可替代性
I、策略模式:(对象行为模式)算法单独的封装起来,使得它独立于其他对象的变化(不同时刻使用不同的业务规则)
J、备忘录模式:(对象行为模式)在不暴露对象内部细节的情况下,将状态保存并可以恢复。
K、迭代器模式:(对象行为模式)聚合对象的遍历算法封装,从而不暴露对象内部结构