开闭原则(Open-Closed Principle, OCP)
软件实体如类、模块和函数应该对扩展开放,对修改关闭。
依赖倒置(Dependence Inversion Principle,DIP)
高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖抽象。
单一职责(Simple Responsibility Pinciple,SRP)
不要存在多于一个导致类变更的原因。
接口隔离(Interface Segregation Principle, ISP)
用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。
迪米特法则(Law of Demeter LoD)
尽量降低类与类之间的耦合。
里氏替换原则(Liskov Substitution Principle,LSP)
合成复用原则(Composite/Aggregate Reuse Principle,CARP)
尽量使用对象组合(has-a)/聚合(contanis-a),而不是继承关系达到软件复用的目的。
学习设计原则,学习设计模式的基础。
在实际开发过程中,并不是一定要求所有代码都遵循设计原则。
我们要考虑人力、时间、成本、质量,不是刻意追求完美,要在适当的场景遵循设计原则,体现的是一种平衡取舍,帮助我们设计出更加优雅的代码结构。