SRP( Principle of single responsibility ,Single Responsibility Principle): There should be and only one reason for class changes .（ If the class needs to be changed , Then it can only be caused by one reason ）
LSP（ Richter's principle of substitution ,Liskov Substitution Principle）: All references to base classes , Can be transparently replaced with its subclass objects . As long as the parent can appear , Subclasses can appear .
OCP( Opening and closing principle ,Open-Closed Principle): Open to expansion , Turn off for changes
ISP( Interface isolation principle ,Interface Segregation Principle): The client only depends on the interface it needs ; It provides whatever interface it needs , Remove unnecessary interfaces . Dependencies between classes should be based on minimal interfaces
DIP( Dependence Inversion Principle ,Dependence Inversion Priniciple): For abstraction （ Interface ） Programming , Not specific （ Realization ） Programming
LoD(Law Of Demeter Dimitar's law , Also known as the principle of minimum knowledge （Least Knowledge Priniple）): Minimize interaction between objects