Bibek Sharma Bibek Sharma - 9 months ago 26
Ruby Question

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

I'm new to ruby on rails. I went through this and this articles, but couldn't understand the actual difference between design patterns and design principles.

Someone could please refer the best blog about design principles and patterns on Ruby on Rails?

Answer Source

Design Principles:

Design principles are core abstract principles which we are supposed to follow while designing software architect. 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 they 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.