设计模式和设计原则之间有什么区别?

时间:2015-07-09 12:12:37

标签: ruby-on-rails ruby design-patterns design-principles

我是Ruby on Rails的新手,我浏览了这些文章。

但我无法理解设计模式设计原则之间的实际区别。 有人可以解释这个区别吗?

5 个答案:

答案 0 :(得分:18)

设计原则:

设计原则是我们在设计软件时应遵循的核心抽象原则。记住它们不具体 - 相当抽象。只要我们处于允许的条件范围内,它们就可以在任何平台上应用于任何语言,无论其状态如何。

示例:

  • 封装各种不同的内容。
  • 编程到接口,而不是实现。
  • 取决于抽象。不要依赖具体的课程。

设计模式:

它们是解决现实世界问题的解决方案,一次又一次地出现,因此我们不再重新发明轮子,而是遵循经过充分验证,经过其他人测试并可安全遵循的设计模式。现在,设计模式是具体的;只有可以应用设计模式的条款和条件。

示例:

  • 单例模式(一个类一次只能有一个实例)

  • 适配器模式(不同类的匹配接口)

以下类比将帮助您更好地理解差异:

原则:我们应该教别人,以便教育自己和他人,并使整个国家成为一个进步的国家。

模式:在我们国家,每个医生毕业都应该在一个遥远的村庄教6个月来完成他/她的学位。

答案 1 :(得分:3)

设计原则

设计原则为设计更好的软件应用程序提供了高级指导。它们不提供实现指南,也不受任何编程语言的约束。 SOLID(SRP、OCP、LSP、ISP、DIP)原则是最流行的设计原则之一。

Single Responsibility Principle

Open/Closed Principle

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle

例如,单一职责原则 (SRP) 建议一个类应该只有一个改变的理由。这是我们在为应用程序设计或创建类时可以牢记的高级声明。 SRP 不提供具体的实施步骤,但您可以自行决定如何在您的应用程序中实施 SRP。

设计模式

设计模式提供了与实现相关的低级解决方案,常见的面向对象问题。换句话说,设计模式为特定的面向对象编程问题建议了特定的实现。例如,如果您想创建一个一次只能有一个对象的类,那么您可以使用单例设计模式,它建议了创建一个只能有一个对象的类的最佳方法。

设计模式已经过其他人的测试并且可以安全地遵循,例如四种模式:抽象工厂、工厂、单例、命令等

答案 2 :(得分:1)

我认为@ArslanAli的答案值得总结。

  • 原则适用于所有编程。每当您选择不遵循原则时,您应该有一个很好的理由。
  • 模式适用于特定的常见问题。每当您选择实施模式时,您应该有一个很好的理由。

答案 3 :(得分:1)

原则是遵循最佳实践,以允许可扩展的体系结构和软件工艺。设计模式是有关如何进行设计和构建代码的技术。每个设计模式都有不同的用例,并且适用于不同的场景。 另一方面原则;在大多数情况下,您需要遵循它们以确保代码质量。 是的,有些原则意味着某些设计模式:开放/封闭原则密切暗示了战略模式。 依赖注入与MVC模式有很强的联系。

答案 4 :(得分:0)

在某种程度上,我们可以将原理称为在编程的每个步骤中都可以遵循的一组规则,但是模式是针对在编码过程中可能会遇到的某些特定问题(并非总是发生的)的结构化解决方案。 / p>