面向对象的设计模式和原理之间有什么区别?他们是不同的东西吗?据我了解,他们两个都试图实现一些共同的目标(例如灵活性)。那么我可以说模式是原则,反之亦然吗?
设计原理= SOLID(即依赖反转原理)
设计模式= Gof(即抽象工厂模式)
面向对象的设计模式和原理之间有什么区别?他们是不同的东西吗?据我了解,他们两个都试图实现一些共同的目标(例如灵活性)。那么我可以说模式是原则,反之亦然吗?
设计原理= SOLID(即依赖反转原理)
设计模式= Gof(即抽象工厂模式)
Answers:
不,他们不一样。
模式是面向对象编程问题的常见解决方案。(我不知道有任何类似的有关函数式或声明式编程的书。)这个想法在1995年由“四人帮”编写的著名的“设计模式”书中得到了体现。
正如安德烈(Andre)所指出的,模式在每种范式中都很普遍。我要重申一下我以前的声明:我不知道有任何类似的有关函数式或声明式编程的书,但是Andre通过下面提供的链接弥补了我的无知。(谢谢安德烈。)
原则较少涉及特定语言或范式,而是较笼统。DRY原则“不要重复自己”对于所有编程都是如此。
好吧,原则是规则,模式是其具体示例。
模式比原则更重要。模式可以解决特定问题。原则可以适用于任何地方,无论上下文如何。实际上是基于原理的模式(SRP,DRY等)
EG让我们来看看策略模式。它定义了一系列算法,将每个算法封装在一起,并使它们可互换。因此,这里有高级算法概念。使用状态模式,您具有高级状态概念。使用原则,您没有任何高级概念。原则是基础,构图者用来实现目标。实施策略模式时,将使用SOLID:
模式最初是为架构记录的。在建筑中,适用于从在房间中放置门到村庄布局的事物。
四人帮将这一思想应用于面向对象的编程。可以使用多个模式来解决问题,但是每种模式都有特定的实现。模式在其他编程方法中也存在,但是我不知道有任何适用的书籍。正如其他人提到的那样,模式涵盖了特定的实现。在不适用的情况下使用模式通常被视为反模式。
尽管可以有标准的实现方法,但原则并不涵盖实现。原则更多的是涉及一般性问题,而不是特定性问题。对于控制反转,我知道至少三种实现方法。对于DRY(不要重复自己),尽管我使用了几种方法,但我不知道具体的实现方法。
考虑
OO设计原则
OO原则是确保OOP概念的一组准则。基于OOP的概念,这定义了设计更好的方法,更好的设计的方法。OO设计的基本原则是SOLID。
设计模式提供了针对设计问题的一般解决方案。请注意,“设计模式”也可以应用于中午面向对象的单词。因此,OO设计模式(OODP)是为基于OO的面向对象设计提供通用解决方案的模式。设计模式是发现的,而不是发明的。定义OODP的方法有多种,最著名的一种是BSC(行为结构创新)。
以下是详细说明的链接。 http://techythought.wordpress.com/2013/01/21/design-principle-vs-ds-design-pattern-describing-oop-elements/