SOLID Principles

Some common terms we hear every day from our friends and colleagues. Also, now a days I get lot of training requirements on these topics.

E.g.

  • Design Patterns/GoF Patterns.
  • Software Architecture Principles.
  • Deciding architecture of your project.
  • Understanding N-tier architecture.
  • What is the role of software architect? Software Architect should know…..x..y…z…

So, why do we need design patterns/N-tier applications/having correct architectural design for our projects is for the following reasons:

  1. Extensibility
  2. Maintainability
  3. Modularity
  4. Reliability
  5. High Availability
  6. Better Performance
  7. Reusability
  8. Robustness
  9. Portability
  10. Security
  11. Compatibility
  12. Usability
  13. Scalability

In short, we want our application to have all of the above mentioned features. If not all but at least some…. So what to do now?

Now a day’s programmers are following SOLID Principles to achieve this.

So, in this article we will understand what SOLID principles are?

SOLID Principles are based on the alphabets which are part of this acronym:

  • S-SRP - Single Responsibility Principle (Do what is told you to do).

  • O-OCP - Open/Close Principle (Open for extensions / Closed for modifications).

  • L-LSP - Liskov Substitution Principle (Child object should be replaced by parent object).

  • I- ISP - Interface Segregation Principle (Deciding what we need).

  • D-DIP - Dependency Inversion Principle (The end user will decide which dependency should be used throughout the application).

Each and every principle will help us in resolving the daily issues we face in coding/designing the software systems.

Next article we will talk about the SRP (Single Responsibility Principle)…..till then stay tuned…………..Keep learning…….Cheers!!!