大话设计模式-总结(3)-行为型模式

13.观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。


14.模版方法模式:定义一个操作的算法骨架,而将一些步骤延迟到子类中,模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤【DP】

代码重复是编程中最常见、最糟糕的‘坏味道’,如果我们再一个以上的地方看到相同的程序结构,那么可以肯定,设法将他们合而为一,程序会变的更好【RIDEC】.完全相同的代码当然存在明显的重复,而微秒的重复会出现在表面不同但是本质相同的结构或处理步骤中【R2P】。模版方法模式由一个抽象类组成,这个抽象类定义了需要覆盖的可能有不同实现的模版方法,每个从这个抽象类派生的具体类将为此模版实现新方法【DPE】。


15.命令模式:将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化;可以对请求排队或记录请求日志,以及支持可撤销的操作。【DP】

将调用操作对象与知道如何实现该操作的对象解耦,支持取消/重做的操作。记录整个操作的日志,支持事物。

大话设计模式-总结(3)-行为型模式_第1张图片

16.状态模式:允许一个对象在其内部状态改变时改变它的行为,让对象看起来似乎修改了它的类。【DP】

提供了一个更好的办法来组织与特定状态相关的代码,决定状态转移的逻辑不在单块的if或switch中,而是分布在各个状态子类之间,由于所有与状态相关的代码都存在于某个状态子类中,所以通过定义新的子类可以很容易地增加新的状态和转换。【DP】


17.职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。【DP】

有多个对象可以处理一个请求,哪个对象处理该请求事先并不知道,要在运行时刻自动确定,让客户在不明确指定接收者的情况下,提交一个请求,然后由所有能处理这请求的对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

大话设计模式-总结(3)-行为型模式_第2张图片


MVC是包括三类对象,Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。如果不使用MVC,则用户界面设计往往将这些对象混在一起,而MVC则将他们分离以提高灵活性和复用性【DP】。MVC是多种模式的综合应用,应该算式一种架构模式。

你可能感兴趣的:(大话设计模式-总结(3)-行为型模式)