What's the difference between design patterns and design principles?

前端 未结 4 1363
囚心锁ツ
囚心锁ツ 2020-12-24 14:50

I\'m new to Ruby on Rails, and I went through these articles.

  • Design Patterns in Ruby: Observer, Singleton
  • Design Patterns in Ruby

But

4条回答
  •  無奈伤痛
    2020-12-24 15:09

    Design Principles:

    Design principles are core abstract principles which we are supposed to follow while designing software. Remember they aren't concrete - rather abstract. They can be applied on any language, on any platform regardless of the state as long as we are within the permissible conditions.

    Examples:

    • Encapsulate what varies.
    • Program to interfaces, not to implementations.
    • Depend upon abstractions. Do not depend upon concrete classes.

    Design Patterns:

    They are solutions to real world problems that pop up time and again, so instead of reinventing the wheel, we follow the design patterns that are well-proven, tested by others, and safe to follow. Now, design patterns are specific; there are terms and conditions only in which a design pattern can be applied.

    Examples:

    • Singleton Pattern ( One class can only have one instance at a time )

    • Adapter Pattern ( Match interface of different classes )

    The following analogy will help you understand the difference better:

    Principle: We should teach others in order to educate ourselves as well as others, and overall make our nation a progressive nation.

    Pattern: In our country, each medical doctor graduate is supposed to teach 6 months in a far-away village to complete his/her degree.

提交回复
热议问题