我是Ruby on Rails的新手,我浏览了这些文章。
但我无法理解设计模式和设计原则之间的实际区别。 有人可以解释这个区别吗?
答案 0 :(得分:18)
设计原则是我们在设计软件时应遵循的核心抽象原则。记住它们不具体 - 相当抽象。只要我们处于允许的条件范围内,它们就可以在任何平台上应用于任何语言,无论其状态如何。
示例:
它们是解决现实世界问题的解决方案,一次又一次地出现,因此我们不再重新发明轮子,而是遵循经过充分验证,经过其他人测试并可安全遵循的设计模式。现在,设计模式是具体的;只有可以应用设计模式的条款和条件。
示例:
单例模式(一个类一次只能有一个实例)
适配器模式(不同类的匹配接口)
以下类比将帮助您更好地理解差异:
原则:我们应该教别人,以便教育自己和他人,并使整个国家成为一个进步的国家。
模式:在我们国家,每个医生毕业都应该在一个遥远的村庄教6个月来完成他/她的学位。
答案 1 :(得分:3)
设计原则为设计更好的软件应用程序提供了高级指导。它们不提供实现指南,也不受任何编程语言的约束。 SOLID(SRP、OCP、LSP、ISP、DIP)原则是最流行的设计原则之一。
Single Responsibility Principle
Interface Segregation Principle
Dependency Inversion Principle
例如,单一职责原则 (SRP) 建议一个类应该只有一个改变的理由。这是我们在为应用程序设计或创建类时可以牢记的高级声明。 SRP 不提供具体的实施步骤,但您可以自行决定如何在您的应用程序中实施 SRP。
设计模式提供了与实现相关的低级解决方案,常见的面向对象问题。换句话说,设计模式为特定的面向对象编程问题建议了特定的实现。例如,如果您想创建一个一次只能有一个对象的类,那么您可以使用单例设计模式,它建议了创建一个只能有一个对象的类的最佳方法。
设计模式已经过其他人的测试并且可以安全地遵循,例如四种模式:抽象工厂、工厂、单例、命令等
答案 2 :(得分:1)
我认为@ArslanAli的答案值得总结。
答案 3 :(得分:1)
原则是遵循最佳实践,以允许可扩展的体系结构和软件工艺。设计模式是有关如何进行设计和构建代码的技术。每个设计模式都有不同的用例,并且适用于不同的场景。 另一方面原则;在大多数情况下,您需要遵循它们以确保代码质量。 是的,有些原则意味着某些设计模式:开放/封闭原则密切暗示了战略模式。 依赖注入与MVC模式有很强的联系。
答案 4 :(得分:0)
在某种程度上,我们可以将原理称为在编程的每个步骤中都可以遵循的一组规则,但是模式是针对在编码过程中可能会遇到的某些特定问题(并非总是发生的)的结构化解决方案。 / p>