思维导图
单一职责,开闭原则,里式替换,接口隔离以及依赖倒置(依赖反转)定义为 SOLID原则,作为面向对象编程的五个基本原则。
详细原则
单一职责
一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
开闭原则
一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
里式替换原则
所有引用基类(父类)的地方必须能透明地使用其子类的对象。
该原则的核心原理是抽象,抽象依赖于继承这个特性,继承的有缺陷如下
优点:
- 代码重用,减少创建类的成本,每个子类都拥有父类的方法和属性。
- 子类与父类基本相似,但又与父类有所区别。
- 提高代码的可扩展性。
缺点: - 继承是侵入性的,减少创建类的成本,每个子类都拥有父类的方法和属性。
- 可能造成子类代码冗余,灵活性降低,因为子类必须拥有父类的属性和方法。
依赖倒置原则
抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
关键点:
- 高层模块不应该依赖底层模块,两折都应该依赖其抽象。
- 抽象不应该依赖细节。
- 细节应该依赖抽象
模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象产生的。
接口隔离原则
使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
迪米特法则
一个软件实体应当尽可能少地与其他实体发生相互作用。