美文网首页
C++设计模式(3)

C++设计模式(3)

作者: alex_zhou | 来源:发表于2017-04-17 18:09 被阅读0次

    本文预览:

    • 状态模式
    • 组合模式
    • 迭代器
    • 职责链
    • 命令

    状态模式

    定义:状态模式(State Pattern),允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。

    类型:对象行为型模式

    一个对象有一个状态,那么每一个状态又对应一些相应的行为。如果这个对象有很多状态,那么就要对应非常多的行为。那么对这些状态的判断以及根据状态完成相应的行为,会非常复杂。并且如果想添加一种新的状态时,需要修改很多的现有代码。这也是有违开闭原则的。状态模式正是在这样一种情况下提出来的。

    状态模式将每种状态对应的行为抽象出来成为单独的新的对象,这样将状态转换显式化了。状态的变换不再依赖于Context内部的行为了。另外,将状态及行为提出来能够大为降低Context对象的复杂度。另外如果一个State对应多个Context时,State还可以被多个Context对象共享。
    状态,我们立马会提出,今天状态不好,做什么都没劲;又或者是今天状态很好,做事得劲,饭也吃得多。那么我们就以一个人不同时刻的状态为例来讲解状态模式。

    state

    组合模式

    常常有一些组件在内部具有特定的数据结构,如果让客户程序依 赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这 些特定数据结构封装在内部,在外部 供统一的接口,来实现与特 定数据结构无关的访问,是一种行之有效的解决方案。
    组合模式

    迭代器模式

    常常有一些组件在内部具有特定的数据结构,如果让客户程序依 赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这 些特定数据结构封装在内部,在外部 供统一的接口,来实现与特 定数据结构无关的访问,是一种行之有效的解决方案。
    迭代器模式

    职责链

    在软件构建过程中,一个请求可能被多个对象处理,但是每个请 求在运行时只能有一个接受者,如果显式指定,将必不可少地带来 请求发送者与接受者的紧耦合
    职责链

    命令模式

    命令模式

    相关文章

      网友评论

          本文标题:C++设计模式(3)

          本文链接:https://www.haomeiwen.com/subject/rnwtzttx.html