SOLID Principles#

This section contains concepts, notes and examples with diagrams and code about design patterns.

We mostly show text, diagrams and the main pieces of code in the pages, and unit tests can be found in the source code directory for each example.

Some notes and examples on SOLID principles.

  • SRP: Single Responsibility

  • OCP: Open–Closed

  • LSP: Liskov Substitution

  • ISP: Interface Segregation

  • DIP: Dependency Inversion

NOTE: The main repo is the one on Gitlab. The Github repo is only a mirror. Discussion, issues, PRs, etc. should be happen on Gitlab.

NOTE: Gitlab renders the PlantUML diagrams (Github does not). Therefore, we strongly recommend that this text be read on the Gitlab repo.


The Java setup was achieve with this:

$ mvn archetype:generate \
    -DgroupId=dev.fernandobasso.solid \
    -DartifactId=java \
    -DarchetypeArtifactId=maven-archetype-quickstart \
    -DarchetypeVersion=1.4 \

And tested with the first time with:

$ cd java

$ mvn package 

$ java \
    -cp target/java-1.0-SNAPSHOT.jar \

Running the Examples#

Check java/Makefile. Run the examples with something like:

$ make hello
$ make lsp_productsdiscount_nok1