学习设计模式六大设计原则之二

简介: 四、接口隔离原则(Interface Segregation Principle,ISP) 1、实例接口;在Java中使用关键字new产生一个实例,它是对一个类型事物的描述,它是一个接口。比如定义一个Person类,使用new实例化Person。

四、接口隔离原则(Interface Segregation Principle,ISP)

1、实例接口;在Java中使用关键字new产生一个实例,它是对一个类型事物的描述,它是一个接口。比如定义一个Person类,使用new实例化Person。Person p = new Person();其中Person就是p的一个接口。

2、类接口;由Java中的关键字Interface定义的接口。

接口隔离原则的定义:

1、Clients should not be forced to depend upon interfaces that they don't use.

2、The dependency of one class to another one should depend on the smallest possible interface.

通过上边两条定义可以通俗点讲:接口尽量细化,同时接口中的方法尽量少。接口是我们设计时对外提供的契约,通过分散定义多个接口,可以预防未来变更的扩散,提高系统的灵活性和可维护性。根据接口隔离原则拆分接口时,首先必须满足单一职责原则。

实际设计:

1、一个接口只服务于一个子模块或者业务逻辑;

2、通过业务逻辑压缩接口中的public方法,尽量使接口达到满身筋骨肉;

3、已经被污染的接口,尽力修改,如果风险大,则使用适配器模式进行转化;

4、了解环境,拒绝盲从;

五、迪米特法则(Law of Demeter,LoD)也称最少知识原则(Least Knowledge Principle,LKP)

规则是:一个对象应该对其他的对象有最少的了解。(Only talk to your immedate friends)

迪米特法则要求类要羞涩一点,尽量不要对外公布太多的public方法和非静态public变量,迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。

迪米特法则的核心观念就是类间解耦,弱耦合,只有弱耦合了,类的复用率才能提高。

六、开闭原则(Open Closed Principle,OCP)

Software entities like classes, modules and functions should be open for extension but closed for modification.

开闭原则是面向对象设计的基本设计规则,其他原则是开闭的具体形态的体现。

开闭原则的好处有:

提高代码的复用性,可维护性好。




目录
相关文章
|
3月前
|
设计模式 Java 测试技术
Java设计模式-UML与设计原则(1)
Java设计模式-UML与设计原则(1)
|
4月前
|
设计模式 前端开发 JavaScript
React开发设计模式及原则概念问题之什么是HOC(Higher-order component),HOC遵循的设计原则都有哪些
React开发设计模式及原则概念问题之什么是HOC(Higher-order component),HOC遵循的设计原则都有哪些
|
6月前
|
设计模式 存储 算法
设计模式学习心得之五种创建者模式(2)
设计模式学习心得之五种创建者模式(2)
47 2
|
6月前
|
设计模式 uml
设计模式学习心得之前置知识 UML图看法与六大原则(下)
设计模式学习心得之前置知识 UML图看法与六大原则(下)
44 2
|
5月前
|
设计模式 算法
交易链路设计原则&模式问题之中介者(Mediator)方法设计模式是什么,如何解决
交易链路设计原则&模式问题之中介者(Mediator)方法设计模式是什么,如何解决
|
6月前
|
设计模式 安全 Java
设计模式学习心得之五种创建者模式(1)
设计模式学习心得之五种创建者模式(1)
40 0
|
6月前
|
设计模式 数据可视化 程序员
设计模式学习心得之前置知识 UML图看法与六大原则(上)
设计模式学习心得之前置知识 UML图看法与六大原则(上)
47 0
|
7月前
|
设计模式 安全 Java
【JAVA学习之路 | 基础篇】单例设计模式
【JAVA学习之路 | 基础篇】单例设计模式
|
7月前
|
设计模式 存储 前端开发
JS的几种设计模式,Web前端基础三剑客学习知识分享,前端零基础开发
JS的几种设计模式,Web前端基础三剑客学习知识分享,前端零基础开发
|
1月前
|
设计模式 安全 Java
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式