【发布时间】:2015-07-09 12:12:37
【问题描述】:
我是 Ruby on Rails 的新手,我浏览了这些文章。
但我无法理解设计模式和设计原则之间的实际区别。 有人可以解释一下区别吗?
【问题讨论】:
-
原则是一种抽象,是设计的指南。模式是解决特定问题的实现。
标签: ruby-on-rails ruby design-patterns design-principles
我是 Ruby on Rails 的新手,我浏览了这些文章。
但我无法理解设计模式和设计原则之间的实际区别。 有人可以解释一下区别吗?
【问题讨论】:
标签: ruby-on-rails ruby design-patterns design-principles
设计原则是我们在设计软件时应该遵循的核心抽象原则。请记住,它们不是具体的——而是抽象的。只要我们在允许的条件内,它们可以以任何语言、在任何平台上应用,无论状态如何。
例子:
它们是对不断出现的现实问题的解决方案,因此我们不会重新发明*,而是遵循经过充分验证、经过他人测试且可以安全遵循的设计模式。现在,设计模式是特定的;只有某些条款和条件才能应用设计模式。
例子:
单例模式(一个类一次只能有一个实例)
Adapter Pattern(匹配不同类的接口)
以下类比将帮助您更好地理解差异:
原则:我们应该教育他人,以教育自己和他人,并使我们的国家成为一个进步的国家。
模式:在我们国家,每个医学博士毕业生都应该在一个遥远的村庄教6个月才能完成他/她的学位。
【讨论】:
我认为@ArslanAli 的回答值得总结。
【讨论】:
设计原则为设计更好的软件应用程序提供了高级指导。它们不提供实施指南,也不受任何编程语言的约束。 SOLID(SRP、OCP、LSP、ISP、DIP)原则是最流行的一组设计原则。
Single Responsibility Principle
Interface Segregation Principle
Dependency Inversion Principle
例如,单一职责原则 (SRP) 建议一个类应该只有一个改变的理由。这是我们在为我们的应用程序设计或创建类时可以牢记的高级声明。 SRP 没有提供具体的实施步骤,但取决于您如何在应用程序中实施 SRP。
设计模式提供与实现相关的低级解决方案,常见的面向对象问题。换句话说,设计模式为特定的面向对象编程问题提出了特定的实现。例如,如果你想创建一个一次只能有一个对象的类,那么你可以使用单例设计模式,它建议了创建一个只能有一个对象的类的最佳方法。
设计模式已经过其他人的测试并且可以安全地遵循,例如四种模式的帮派:抽象工厂、工厂、单例、命令等。
【讨论】:
原则是实现可扩展架构和软件工艺的最佳实践。设计模式是关于如何进行设计和构建代码的技术。每种设计模式都有不同的用例,适用于不同的场景。 另一方面原则;在大多数情况下,您需要遵循它们才能获得代码质量。 是的,一些原则暗示了一些设计模式:例如。 Open/Closed 原则与策略模式密切相关。 依赖注入与 MVC 模式有很强的联系。
【讨论】:
在某种程度上,我们可以将原则称为一组规则,我们可以在编程的每个步骤中遵循这些规则,但模式是针对我们在编码过程中可能面临的某些特定问题的一组结构化解决方案 - 并不总是会发生。
【讨论】: