面向对象设计原则
开放关闭原则(OCP,Open Closed Principle)
- 对扩展开放—类的行为可以被扩展从而满足新的需求
- 对修改关闭—不允许修改类的源代码
开放封闭原则是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。其他的设计原则,很多时候是为实现这一目标服务的.
里氏替换原则(LSP,Liskov Subsitution Principle)
任何基类可以出现的地方,子类一定可以出现。
面向对象设计的基本原则之一。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正的被复用,而衍生类也能够在基类的基础上增加新的行为。里氏替换原则是对开放关闭原则的补充
单一职责原则(SRP,Single Responsibility Principle)
亦称单一功能原则,它规定一个类应该只有一个发生变化的原因。
如果有多个原因去改变一个类,那么应该把这些引起变化的原因分离,将该类分割为多个类,每个类只负责处理一种改变。
依赖倒置原则(DIP,Dependence Inversion Principle)
设计代码结构时,高层模块不应该依赖低层模块,二者都应该依赖其抽象。
抽象不应该依赖细节,细节应该依赖抽象。通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定行,提高代码的可读性与可维护性,并且能够降低修改程序所造成的风险。
接口隔离原则(ISP,Interface Segregation Principle)
接口的调用者不应该被强迫依赖它不需要的接口
应该将复杂接口进行拆分,拆分后的每个接口应该具有明确定义的职责,使用者可以更难聚其需要依赖这些小接口,而无需依赖不相关的接口。
最少知识原则(LoD, Law of Demeter)
每个单元对其他单元只拥有有限的知识,只了解与当前单元紧密联系的单元
该原则目的在于降低类之间的耦合。但有可能造成系统中存在大量的中介类,这些类只为了传递类之间的互相调用关系—这在一定程度上增加了系统的复杂性。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sugar Code!