单一职责原则(SRP)
一个类,最好只做一件事,只有一个引起它变化的原因
SRP由引起变化的原因决定,而不由功能职责决定。
相关设计模式:Façade , Proxy
专注
里氏替换原则(LSP)
子类必须能够替代基类
在继承关系中,子类对父类的继承字段、属性、还有方法;而使同一方法在子类中表现为不同的行为是通过多态来实现的,具体在语言操作上表现为父类提供虚函数,而在子类中覆写该虚函数,这是抽象机制的重要基础。 Liskov
开放封闭原则(OCP)
软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。
对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况
对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。
相关设计模式:Template Method,Strategy
里氏替换原则是其实现的基础
依赖倒置原则(DIP)
依赖于抽象。
不要调用我们,我们会调用你的
当两个模块之间存在紧耦合的关系时,最好的方法就是分离接口和实现:在依赖之间定义一个抽象的接口,使得高层模块调用接口的方法,而底层模块实现接口的定义,以此来有效控制耦合关系,达到依赖于抽象的设计目标。