【问题标题】:Why is proxy pattern Structural Pattern and why is State Pattern behavioral pattern?为什么是代理模式是结构模式,为什么是状态模式是行为模式?
【发布时间】:2011-08-26 23:57:11
【问题描述】:

为什么代理模式是结构模式,为什么状态模式是行为模式。确定新模式应被视为结构性还是行为性的标准是什么?

【问题讨论】:

    标签: design-patterns state-pattern proxy-pattern


    【解决方案1】:

    如果重点是如何组织对象之间的关系以形成更大的组件,则模式是结构化的,而行为模式则侧重于对象职责的分配以及它们之间的通信

    代理是结构性的,因为它充当另一个对象的代理,状态是行为性的,因为状态被传递给对象以在运行时影响其行为。

    【讨论】:

      【解决方案2】:

      让我们从结构和行为模式的定义开始。

      结构模式:结构模式关注如何组合类和对象以形成更大的结构。继承是结构类模式用来组成实现或接口的机制。结构对象模式说明了以向对象提供新功能的方式组合对象的方法。

      行为模式:行为模式是实现算法并关注对象之间分配职责的模式。它们还描述了对象和类之间的通信模式。通过使用行为模式,设计师能够将他/她的注意力从控制流中转移出来,并将他/她的注意力集中在对象相互连接的方式上。行为类模式通过使用面向对象的继承技术在类之间分配行为。另一方面,行为对象模式使用对象组合来执行它们的功能。

      如果您仔细考虑这些,整个前提是如果它与建模类/对象结构有关,请选择结构模式,如果您正在处理不断变化的行为,那么行为模式将助您一臂之力。

      在代理的情况下,您只是包装目标并转发呼叫。在状态的情况下,您实际上使用继承(如上面的定义中所述)并因此使用多态性来更改运行时行为。

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-23
        • 2015-03-08
        • 1970-01-01
        • 2011-11-14
        • 2010-11-02
        • 2011-01-16
        • 1970-01-01
        相关资源
        最近更新 更多