SOLID, Part 5: Dependency Inversion Principle

by 

|

|  

in

In this five-part series, I’m covering each design principle laid out in SOLID. In this final post, I am covering the dependency inversion principle. The “D” in SOLID is a pretty well understood principle. It is supported by a variety of platforms, including Angular. The code below shows how it is implemented using Angular. The…

Read more…

SOLID, Part 4: Interface Segregation Principle

by 

|

|  

in

In this five-part series, I’m covering each design principle laid out in SOLID. In this post, I am covering the Interface segregation principle. The “I” in SOLID is a principle that is easy to skip over. Everyone will always remember the “S”, because it is first. The “L” is easy to remember because it is…

Read more…

SOLID, Part 3: Liskov Substitution Principle

by 

|

|  

in

In this five-part series, I’m covering each design principle laid out in SOLID. In this post, I am covering the Liskov substitution principle. Now is when things get interesting: program to an interface that can be implemented by many services. The Liskov substitution principle (LSP), created by Barbara Liskov, says we can substitute one service…

Read more…

SOLID, Part 2: Open / Closed Principle

by 

|

|  

in

In this five-part series, I’m covering each design principle laid out in SOLID. In this post, I am covering the Open / Closed principle. The Open / Closed principle is hardest to argue for. In our SOA (service-oriented architecture) world, we try to avoid using inheritance as a method to change behaviors. We would tend…

Read more…

SOLID, Part 1: Single Responsibility Principle

by 

|

|  

in

SOLID is an acronym created by Robert Martin (Uncle Bob) to describe five principles we should follow to make software designs more understandable, flexible, and maintainable. In general, these are very good guidance. While I don’t think the acronym is perfect and I don’t really focus on the open / closed principle, I do think…

Read more…