菜鸟学习 设计模式——行为模式(一)
2017-05-29 07:59
120 查看
行为模式:是从大量实际行为中概括出来作为行为的理论抽象、基本框架或标准。
在设计模式中,行为模式是最多的一种类型模式,总共有11中模式,我分两篇博客总结一下。
一,策略模式(Strategy):
1,定义:它定义了算法家族,分别分装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。
4000
2,基本结构:
3,总结:
策略模式是一种定义一系列算法的方法,从概念上看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的看法,减少了各种算法类与使用算法类之间的耦合。
优点:层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法的功能。
4,应用举例:商场促销
二,模版方法模式(TemplateMethod):
1,定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
2,基本结构:
3,总结:模版方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。当不变的可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们可以通过模版方法把 这些行为搬到单一的地方,这样就帮助子类摆脱重复的不变的行为的纠缠。
4,应用举例:抄试卷做题
三,状态模式(State):
1,定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
2,基本结构:
3,总结:
状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。 当一个对象的行为取决于它的状态,并且它必须在运行时刻根基状态改变它的行为时,就可以考虑使用状态模式。
4,应用举例:不同工作状态描述
四,备忘录模式(Memento)
1,定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。
2,基本结构:
3,总结:很多情况下我们会用到复原,恢复的功能,这时候备忘录模式就起到作用了。
4,应用举例:游戏进度的保存
五,命令模式(Command):
1,定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
2,基本结构:
3,总结:优点,1,它能较容易的设计一个命令队列;2,在需要的情况下,可以较容易的将命令记入日志;3,允许接收请求的一方决定是否要否决请求;4,可以容易实现对请求的撤销和重做;5,由于加进新的具体命令类不影响其他的类,因此增加新的具体命令很容易。
4,应用举例:烤羊肉串,玉皇大帝通过太白金星邀请孙悟空上天。
在设计模式中,行为模式是最多的一种类型模式,总共有11中模式,我分两篇博客总结一下。
一,策略模式(Strategy):
1,定义:它定义了算法家族,分别分装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。
4000
2,基本结构:
3,总结:
策略模式是一种定义一系列算法的方法,从概念上看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的看法,减少了各种算法类与使用算法类之间的耦合。
优点:层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法的功能。
4,应用举例:商场促销
二,模版方法模式(TemplateMethod):
1,定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
2,基本结构:
3,总结:模版方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。当不变的可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们可以通过模版方法把 这些行为搬到单一的地方,这样就帮助子类摆脱重复的不变的行为的纠缠。
4,应用举例:抄试卷做题
三,状态模式(State):
1,定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
2,基本结构:
3,总结:
状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。 当一个对象的行为取决于它的状态,并且它必须在运行时刻根基状态改变它的行为时,就可以考虑使用状态模式。
4,应用举例:不同工作状态描述
四,备忘录模式(Memento)
1,定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。
2,基本结构:
3,总结:很多情况下我们会用到复原,恢复的功能,这时候备忘录模式就起到作用了。
4,应用举例:游戏进度的保存
五,命令模式(Command):
1,定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
2,基本结构:
3,总结:优点,1,它能较容易的设计一个命令队列;2,在需要的情况下,可以较容易的将命令记入日志;3,允许接收请求的一方决定是否要否决请求;4,可以容易实现对请求的撤销和重做;5,由于加进新的具体命令类不影响其他的类,因此增加新的具体命令很容易。
4,应用举例:烤羊肉串,玉皇大帝通过太白金星邀请孙悟空上天。
相关文章推荐
- 菜鸟学习 设计模式——行为模式(2)
- 设计模式学习-行为模式-职责链模式
- [原版].NET 菜鸟如何 学习 设计模式 [不断修改中]
- 【设计模式学习笔记十五】【行为模式】【命令模式(Command)】
- 【设计模式学习笔记二十一】【行为模式】【状态模式(State)】
- 深入学习js之浅谈设计模式(行为委托)
- 【设计模式学习笔记二十三】【行为模式】【访问者模式(Vistor)】
- 【我的《冒号课堂》学习笔记】设计模式(3)行为模式
- 【设计模式学习笔记二十二】【行为模式】【策略模式(Strategy)】
- 【设计模式学习笔记十七】【行为模式】【迭代器模式(Interpreter)】
- 菜鸟学习 设计模式——创建型
- 设计模式之菜鸟缓慢型学习教程
- 菜鸟的学习之路(6) — 设计模式之单例模式(Singleton)
- 【设计模式学习笔记二十】【行为模式】【观察者模式(Observer)】
- 设计模式学习笔记——行为模式
- 菜鸟学习 设计模式——结构型
- 初学菜鸟的学习日记——继续低端(代理模式设计)
- 设计模式学习之总结-单例模式by一只菜鸟
- 菜鸟学习设计模式的心得
- 【设计模式学习笔记十九】【行为模式】【备忘录模式(Memento)】