Design patterns 设计模式正交性

Design patterns 设计模式正交性,design-patterns,Design Patterns,通过阅读设计模式,我们发现已经定义了23(?)个奇怪的模式。我已经看到一些(如建筑商和装饰商)中有一些重叠,这表明 a。我不完全理解给定的模式,以及它们之间的差异 b。一些图案的某些设计特征与其他图案重叠 设计模式的整个哲学不应该在已知模式集合中强化模式“正交性”的理念吗?不应该,我不认为任何设计模式完全重叠另一种模式。它们之间总是存在差异,这解释了它们没有合并的事实 维基百科说: 在面向对象编程中 装饰图案是一种设计图案 这允许新的/额外的行为 要添加到现有类中,请执行以下操作: 动态地 及

通过阅读设计模式,我们发现已经定义了23(?)个奇怪的模式。我已经看到一些(如建筑商和装饰商)中有一些重叠,这表明

a。我不完全理解给定的模式,以及它们之间的差异

b。一些图案的某些设计特征与其他图案重叠


设计模式的整个哲学不应该在已知模式集合中强化模式“正交性”的理念吗?

不应该,我不认为任何设计模式完全重叠另一种模式。它们之间总是存在差异,这解释了它们没有合并的事实

维基百科说:

在面向对象编程中 装饰图案是一种设计图案 这允许新的/额外的行为 要添加到现有类中,请执行以下操作: 动态地


(来源:)

生成器模式是一种软件 设计模式。目的是 建筑设计的抽象步骤 对象使其不同 可以实现这些步骤 构造不同的表示形式 对象


虽然它在概念上有一些相似之处,但它并不完全相同

尽管四人帮(GO4)定义了23种设计模式,但实际上有无限量的设计模式。如果你想的话,你可以自己动手叫它珍妮。。。如果人们采用它,那么它实际上就是一种设计模式。根据技术组合,一次可以使用n个图案

以下是一个在.NET环境下学习模式的好来源(售价99美元,但非常宝贵):

至于重叠。。。不是真的。。。MVC(模型-视图-控制器)就是一个很好的例子。实际上,它是通过CakePHP、ASP.NETMVC、Spring、Struts等几十种方式实现的。然而,它有一个称为MVP(Model View Presenter)的近亲,这两者永远不会相遇;它们共享许多方面(模型视图部分),但有明显的区别

在任何给定的开发项目上,您都可以使用几十种设计模式。例如,存储库模式、MVC、装饰器等