单一职责
定义
应该有且仅有一个原因引起类的变更。
详细描述
接口的职责在设计时应该做到单一,降低类的复杂性,实现的职责都有明确的定义,提高了可读性、可维护性、可扩展性;
变更引起的风险降低,如果接口隔离性做的好,一个接口的修改只对相应实现类有影响,对其它接口没有影响,降低了耦合性。
(单一职责提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计的是否优良,但是“职责”或“变化原因”都是不可度量的,因项目而异,因环境而异)
里氏替换原则(Liskov Substitution Principle LSP)
定义
是面向对象设计的基本原则之一,只要父类能出现的地方子类就能出现,而且替换为子类也不会产生任何错误或异常。
详细描述
LSP原则是继承复用的基石,只有当子类能够替换掉父类,软件单位功能不受影响时,父类才能被真正复用。LSP原则是对开闭原则的补充,实现开闭原则的关键步骤就是抽象化,而父类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
子类必须完全实现父类的方法
子类可以有自己的个性
子类可以有自己的个性
子类可以有自己的个性
优点
代码共享,减少创建类的工作量
提高代码的重用性
子类可以形似父类,但又异于父类
提高代码的可扩展性
提高产品或项目的开放性
缺点
继承是侵入性的,只要继承就必须拥有父类的所有属性和方法
降低代码的灵活性
增强了耦合性,父类的常量、变量、方法被修改时,要考虑到子类的修改,在缺乏规范的环境下,可能有许多代码需要重构。
依赖倒置原则(Dependence Inversion Principle, DIP)
定义
高层模块不应该依赖低层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象
面向接口编程(Object-Oriented Design, OOD)
优点
依赖倒置原则可以降低类间的耦合性;
依赖倒置原则可以提高系统的稳定性;
依赖倒置原则可以减少并行开发引起的风险;
依赖倒置原则可以提高代码的可读性和可维护性;
接口隔离原则
定义
使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
详细描述
接口仅仅提供客户端需要的行为,客户端不需要的行为则隐藏起来,应当为客户端提供尽可能小的接口,而不要提供大的总接口
迪米特法则(Low of Demeter ,LoD)又称最少知识原则
定义
一个软件实体应当尽可能少的与其他实体发生相互作用。
详细描述
应该尽量减少对象之间的交互,如果两个对象不必直接通信,那么这两个对象就不应该发生任何直接的相互作用,如果其中一个对象需要调用另外一个对象的某个方法时,可以通过第三者转发这个调用。就是通过引入一个合理的第三者来降低先有对象之间的耦合度。
开闭原则
定义
对扩展开放,对修改关闭
详细描述
开闭原则(Open Closed Principle)是编程中最基础、最重要设计原则
一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。
一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。
编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。
网友评论