设计模式正交性

时间:2009-07-20 17:53:50

标签: design-patterns

阅读设计模式,并发现已定义了23个(?)奇怪的模式。我在一些(即构建器和装饰器)中看到了一些重叠,暗示要么

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

湾一些模式的一些设计特征与其他模式重叠

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

2 个答案:

答案 0 :(得分:3)

不是真的,我认为任何设计模式都不会与另一个完全重叠。它们之间总有差异,可以解释它们没有合并的事实。

维基百科说:

alt text

  

在面向对象的编程中,   装饰图案是一种设计模式   允许新的/额外的行为   要添加到现有类   动态。

alt text
(来源:wikimedia.org

  

Builder Pattern是一个软件   设计模式。目的是为了   抽象的建设步骤   对象让不同   这些步骤的实现可以   构建不同的表示形式   对象。

尽管它有一些相似的概念,但它并不完全相同。

答案 1 :(得分:0)

实际上有无限量的设计模式虽然由四人一组(GO4)定义。如果你愿意,你可以自己动手并称之为Janie ......如果人们采用它,那么它实际上就是一种设计模式。根据技术组合,您可以一次使用n个模式。

这是学习.NET世界环境中模式的一个很好的资源(99美元但非常宝贵):

http://www.dofactory.com/Default.aspx

至于重叠...不是真的...一个很好的例子是MVC(模型视图控制器)。实际上它是以几十种方式实现的,例如CakePHP,ASP.NET MVC,Spring,Struts等。但是它有一个近亲叫MVP(模型视图演示者),它们永远不会相遇;它们共享许多方面(模型视图部分)然而有明显的差异。

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