This tutorial was insprired from the Encapsulation SOLID course on Pluralsigt.
SOLID is an acronym for the following:
- S - Single Responsibility Principle (SRP)
- O - Open Closed Principle (OCP)
- L - Liskov Substitution Principle (LSP)
- I - Interface Segregation Principle (ISP)
- D - Dependency Inversion Principle (DIP)
Start with the original file FileStore.ts and we then take that and apply refectorings step by step in the order of SOLID.
So prehaps take a look at the original file as a reference. As you can see all the functionality is included in this file and none of the SOLID priniples have yet to be applied. Then move to each priniple one at a time folowing the same order of SOLID.
If you want to jump directly to the final solution, that is once all the SOLID priniples have been applied to this original file, then take a look at the code in the ependency Inversion Principle (DIP) folder. In that code all the SOLID principles have been applied. If you want a sort of journey on how we got there, I suggest following each step at a time.
So, what are you waiting for? Navigate to the separate folder linked above in this repo for further explainations and an example application written in Typescript.