行为型设计模式
①观察者模式
观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并自动更新。
②命令模式
命令模式:将一个请求封装成一个对象,从而可以使用不同的请求对对客户进行参数化;可以请求排队或记录请求日志,以及支持撤销等操作。
③职责链模式
职责链模式:使多个对象都有机会处理请求,从而避免请求者和接受者之间的耦合关系。将这些对象连接成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
重点:命令模式是将多个命令提交给一个执行该命令的对象;职责链模式是将一条请求提交给多个可处理请求对象。
④模版方法
模版方法:定义一个操作的算法骨架,而将一些步骤延迟到子类中,这使得子类可以在不改变算法结构的前提下重新定义算法的某些特定步骤。
⑤状态模式
状态模式:允许一个对象在其内部状态改变时改变它的行为,让对象看起来是在修改它的类。
区别:状态模式是让各个状态对象知道其下一个处理对象是谁,即在编译时就设定好了;职责链模式中的各个对象并不知道下一个处理的对象是谁,由客户端设定。
⑥解释器模式
解释器模式:定义一种语言,定义它的文法表示,定义一个解释器,这个解释器使用该表示解释语言中的句子。
⑦中介者模式
中介者模式:用一个中介对象来封装一系列的对象交互。中介者可以独立地改变它们之间的交互,使对象并不需要显示的互相引用,从而达到松耦合的效果。
⑧访问者模式
访问者模式:表示一个作用于某对象结构中各元素的操作。它使你可以在不改变各元素的类的前提下定义作用这些类的新操作。
⑨策略模式
策略模式:定义一系列算法,把它们一个个封装起来,并且使他们可以相互替换。本模式使得算法可以独立于用户而变化。
⑩备忘录模式
备忘录模式:在不破坏封装的前提性下,捕获一个对象的内部状态,并在该对象之外保存这个对象。这样以后就可将该对象恢复到原先保存的状态。
⑩①迭代器模式
迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需暴露该对象的内部表示。