设计模式-极简笔记-6大设计原则

通过尽量少的语言描述设计模式的相关概念
如果想要更详细的描述可参看设计模式其他相关书籍或者资料

6大设计原则

单一职责原则

英文名称:Single Responsibiity Principle 简称:SRP
定义:在定义接口的时候,接口的功能要单一。
该原则素来有很多的争议,因为这个原则在实际开发过程中很难界定功能范围,所以需要根据实际情况使用,不要生搬硬套。

里氏替换原则

英文名称:Liskov Substitution Principle 简称:LSP
通俗定义:只要父类能出现的地方子类就可以出现,而且替换为子类不会产生任何错误或异常
该原则主要为继承定义一个规范,子类尽量不要出现父类不存在的方法或属性

依赖倒置原则

英文名称:Dependence Inversion Principle 简称:DIP
通俗定义:通常依赖都是指的具体实现类的依赖和耦合,这里倒置就是要把依赖放到接口层。具体的实现类之间不存在依赖,实现类只是依赖他们的接口。
该原则就是经常谈到的面向接口编程

接口隔离原则

英文名称:Interface Segregation Principle 简称:ISP
通俗定义:客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上。
该原则规范了我们对外提供接口时的一个规范,对外提供接口时,只提供需要的接口。
比如:提供通过姓名查询用户信息的接口,就提供queryByName(String name),而不是提供一个通用query(String queryParam),约定参数为{“name”:张三}这样的形式。

迪米特法则

英文名称:Law of Demeter 简称:LOD

英文名称:Least Knowledge Principle 简称:LKP
本人喜欢第二个描述。
通俗定义:一个类再调用其他类或者接口的时候应该对该类有最少的了解,只要知道该接口能实现什么功能即可,至于如何实现,以及过程都不需要关心。

开闭原则

英文名称:Open Closed Principle 简称:OCP
通俗定义:一个接口,类,模块的定义应该对扩展开放,对修改关闭
该原则规范我们在开发过程中尽量通过扩展的方式来实现新的功能或者变化,而不是去修改原有逻辑或者接口