SOLID principles

A set of principles promoted by .

Single responsibility
A class should have one, and only one, reason to change.
Software entities should be open for extension, but closed for modification. , Object-Oriented Software Construction
Liskov substitution
Behaviour is equal so the caller does not know the difference. The object called on can be replaced.
Interface seggregation
Clients should not be forced to depend on methods they do not use.
Dependency inversion
High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions.

  1. SOLID Go Design,