SOLID Principles – Part 06 – Dependency Inversion Principle

Principle Classes that depend on other classes should depend on abstractions rather than concrete implementations. This makes the classes much more flexible to changing implementations. Scenario To demonstrate ISP I will continue using the E-Commerce example from the previous blog. A customer has an order which includes multiple order items. Given an order we calculate … More SOLID Principles – Part 06 – Dependency Inversion Principle

SOLID Principles – Part 05 – Interface Segregation Principle

Principle Functionality should be broken into specific interfaces rather than one all-purpose interface. This means clients are not be forced to depend upon methods that they do not use. Scenario To demonstrate ISP I will continue using the E-Commerce example from the previous blog. A customer has an order which includes multiple order items. Given … More SOLID Principles – Part 05 – Interface Segregation Principle

SOLID Principles – Part 04 – Liskov Substitution Principle

Principle This principle is an extension of the Open Close Principle and was first introduced by Barbara Liskov during a conference keynote speech. We need to ensure that new derived classes are extending the base classes without changing their behaviour. You should be able to replace a class with its base type without altering the … More SOLID Principles – Part 04 – Liskov Substitution Principle

SOLID Principles – Part 03 – Open Closed Principle

Principle A class, properties and methods should be open for extension but closed for modification. E.g. If we need to add new functionality to a class, it should be added using a derived class. Scenario To demonstrate OCP I will continue using the E-Commerce example from the previous blog. A customer has an order which … More SOLID Principles – Part 03 – Open Closed Principle

SOLID Principles – Part 02 – Single Responsibility Principle

Principle A class should only have a single responsibility. E.g. If it’s a logging class it should only do logging. If it’s a payments class it should only do payments, and so forth. A class should only have one reason to change. Scenario To demonstrate SRP I will use an E-Commerce example. A customer has … More SOLID Principles – Part 02 – Single Responsibility Principle