为什么代理模式结构模式以及为什么是State Pattern行为模式?

时间:2011-05-17 06:42:59

标签: design-patterns

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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

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

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

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

如果你仔细思考这些,那么整个前提是它是否与建模类/对象结构有关,那就是结构模式,如果你正在处理不断变化的行为,那么行为模式就会拯救你。

如果是Proxy,您只需包装目标并转发呼叫。在State的情况下,你实际上使用继承(如上面的定义所述),因此使用多态来改变运行时行为。

希望有所帮助。