Design patterns 为什么代理模式是结构模式,为什么状态模式是行为模式?

Design patterns 为什么代理模式是结构模式,为什么状态模式是行为模式?,design-patterns,state-pattern,proxy-pattern,Design Patterns,State Pattern,Proxy Pattern,为什么代理模式是一种结构模式,为什么状态模式是一种行为模式。确定新模式的标准是什么?应将其视为结构模式还是行为模式?如果模式的重点是如何组织对象之间的关系以形成更大的组件,那么模式就是结构模式,而行为模式的重点是对象责任的分配以及它们之间的沟通 代理是结构化的,因为它充当另一个对象的代理,状态是行为的,因为状态被传递到一个对象,以影响其在运行时的行为。让我们从定义结构和行为模式开始 结构模式:结构模式侧重于如何组合类和对象以形成更大的结构。继承是结构类模式用于组合实现或接口的机制。结构化对象模式

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

如果模式的重点是如何组织对象之间的关系以形成更大的组件,那么模式就是结构模式,而行为模式的重点是对象责任的分配以及它们之间的沟通


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

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

结构模式:结构模式侧重于如何组合类和对象以形成更大的结构。继承是结构类模式用于组合实现或接口的机制。结构化对象模式演示了以向对象提供新功能的方式组合对象的方法

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

如果你仔细考虑这些,整个前提是如果它与建模类/对象结构有关,那么就选择结构模式,如果你处理的是不断变化的行为,那么行为模式就会帮助你

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

希望有帮助