I wanted to recap this series about SOLID principles. In my opinion SOLID can be summarized with two things: "Code against interfaces, not implementations" and "write small classes/interfaces". If we follow those two things, our code would be close to SOLID.
"Program to an interface, not an implementation" is a famous quote by Gang of Four. Even if it is not the definition of the dependency inversion principle, it is really close to it. Another related quote is by Robert C. Martin: "depend on abstractions, not on concretions". While writing this blog post I concretely learned what these quotes practically mean.
Interface segregation principle (ISP) says that clients should not be forced to depend upon interfaces that they do not use. Practically that means that we should have rather small interfaces with just few (or even one) methods than fat interfaces with many methods. In this blog post I will explain what ISP is and what relationship it has with Liskov substitution and single responsibility principles.
You can't get any idea of what Liskov substitution principle (LSP) is from its name. And its definition is hard to understand. But when you dig into it you'll find that it is quite important and not that difficult principle. It has a relationship with open/closed principle and contract by design. LSP guarantees that every object of subclasses behaves just like superclass. In this blog post I will explain what LSP is and how it helps to make better code.
"Software entities should be open for extension, but closed for modification" is the definition of open/closed principle. I learned a lot while writing this blog post. For example I learned what relationship does open/closed principle have with strategy pattern. I will explain also it beside I explain what is the open/closed principle. This is the 2/5 blog post from SOLID serie. It was worth to write!
Single responsibility principle (SRP) is a good way to write better code that is easier to maintain and read. In this blog post I have written what is SRP and why you should write code applying SRP. This is the first blog post from SOLID serie. Reason to write this serie was to deeply learn what SOLID is and master it.