Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 什么';设计模式和设计原则之间的区别是什么?_Ruby On Rails_Ruby_Design Patterns_Design Principles - Fatal编程技术网

Ruby on rails 什么';设计模式和设计原则之间的区别是什么?

Ruby on rails 什么';设计模式和设计原则之间的区别是什么?,ruby-on-rails,ruby,design-patterns,design-principles,Ruby On Rails,Ruby,Design Patterns,Design Principles,我是RubyonRails新手,我浏览了这些文章 但是我无法理解设计模式和设计原则之间的实际区别。 有人能解释一下区别吗?设计原则: 设计原则是我们在设计软件时应该遵循的核心抽象原则。记住它们不是具体的,而是抽象的。只要我们在允许的条件范围内,它们可以在任何语言、任何平台上应用,而不管状态如何 示例: 封装变化的内容 程序到接口,而不是实现 依赖抽象。不要依赖于具体的类别 设计模式: 它们是一次又一次出现的现实世界问题的解决方案,因此,我们不必重新发明轮子,而是遵循经过充分验证、经过

我是RubyonRails新手,我浏览了这些文章

但是我无法理解设计模式和设计原则之间的实际区别。 有人能解释一下区别吗?

设计原则: 设计原则是我们在设计软件时应该遵循的核心抽象原则。记住它们不是具体的,而是抽象的。只要我们在允许的条件范围内,它们可以在任何语言、任何平台上应用,而不管状态如何

示例:

  • 封装变化的内容
  • 程序到接口,而不是实现
  • 依赖抽象。不要依赖于具体的类别
设计模式: 它们是一次又一次出现的现实世界问题的解决方案,因此,我们不必重新发明轮子,而是遵循经过充分验证、经过他人测试且可以安全遵循的设计模式。现在,设计模式是特定的;只有在某些条款和条件中才能应用设计模式

示例:

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

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

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

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


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

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

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

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

在某种程度上,我们可以将原则作为一组规则来引用,我们可以在编程的每一步中遵循这些规则,但模式是针对我们在编码过程中可能遇到的一些特定问题的一组结构化解决方案,这些问题并不总是发生。

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

例如,单一责任原则(SRP)建议一个类应该只有一个改变的理由。这是一个高级语句,在为应用程序设计或创建类时,我们可以记住它。SRP不提供具体的实现步骤,但如何在应用程序中实现SRP取决于您自己

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


设计模式由其他人进行测试,并且可以安全地遵循,例如四人帮模式:抽象工厂、工厂、单例、命令等。

原则是一种抽象,是设计指南。模式是解决特定问题的实现。“程序到接口”和“依赖于抽象”是同一回事。就说“.”)