SOLID Design Principles
SOLID is an acronym of design principles that help software engineers write solid code within a project.
-
S - Single Responsibility Principle. A module should be responsible to one, and only one, actor. a module is just a cohesive set of functions and data structures.
-
O - Open/Closed Principle. A software artifact should be open for extension but closed for modification.
-
L - Liskov’s Substitution Principle. Simplify code with interface and implementation, generics, sub-classing, and duck-typing for inheritance.
-
I - Interface Segregation Principle. Segregate the monolithic interface into smaller ones to decouple modules.
-
D - Dependency Inversion Principle. The source code dependencies are inverted against the flow of control. most visible organizing principle in our architecture diagrams.
- Things should be stable concrete, Or stale abstract, not ==concrete and volatile.==
- So use ==abstract factory== to create volatile concrete objects (manage undesirable dependency.) 产生 interface 的 interface
- DIP violations cannot be entirely removed. Most systems will contain at least one such concrete component — this component is often called main.