Home
Do you know the common Design Principles? (Part 1)
  v12.0 Posted at 30/07/2019 10:07 AM by Tiago Araujo

SRP The Single Responsibility Principle
A class should have one, and only one reason to change.

OCP The Open Closed Principle 
You should be able to extend a class's behavior without modifying it.

LSP The Liskov Substitution Principle 
Derived classes must be substitutable for their base classes.

ISP The Interface Seg​regation Principle 
Make fine-grained interfaces that are client specific.

DIP The Dependency Inversion Principle 
Depend on abstractions, not on concretions.

Figure: Your code should be using SOLID principles​​

It is assumed knowledge that you know all 5 SOLID principles. If you don't, read about them on Uncle Bob's site above, or watch the SOLID Pluralsight videos by Steve Smith.

What order?

  1. Look for Single Responsibility Principle violations. These are the most common and are the source of many other issues. Reducing the size and complexity of your classes and methods will often resolve other problems.
  2. Liskov Substitution and Dependency Inversion are the next most common violations, so keep an eye out for them next.
  3. When teams first begin implementing Dependency Injection, it is common for them to generate bloated interfaces that violate the Interface Segregation Principle.

After you have identified and corrected the most obvious broad principle violations, you can start drilling into the code and looking for localized code breaches. ReSharper from JetBrains o​r JustCode from Telerik are invaluable tools once you get to this level.

Once you understand common design principles, look at common design patterns to help you follow them in your projects.

Related rules

    Do you feel this rule needs an update?

    If you want to be notified when this rule is updated, please enter your email address:

    Comments: