4.1 接口隔离原则的定义
接口分类
1. 实例接口(Object Interface
)
在Java
中声明一个类,然后用new
关键字产生一个实例,它是对一个类型的事物的描述,这是一种接口。
比如你定义Person
这个类,然后使用Person zhangSan=new Person()
产生了一个实例,这个实例要遵从的标准就是Person
这个类,Person
类就是zhangSan
的接口。从这个角度来看,Java
中的类也是一种接口。
2. 类接口(Class Interface
)
就是使用的interface
关键字定义的接口。
隔离的两个定义
- 客户端不应该依赖它不需要的接口。
- 类间的依赖关系应该建立在最小的接口上。
通俗一点讲:接口尽量细化,同时接口中的方法尽量少。
接口隔离原则和单一职责原则的区别
- 单一职责要求的是类和接口职责单一,注重的是职责,这是业务逻辑上的划分,
- 而接口隔离原则要求接口的方法尽量少。
例如一个接口的职责可能包含10个方法,这10个方法都放在一个接口中,并且提供给多个模块访问,这中做法
- 按照单一职责原则是允许的,
- 按照接口隔离原则是不允许的,
因为接口隔离原则
要求”尽量使用多个专门的接口”。专门的接口就是指提供给每个模块的都应该是单一接口,提供给几个模块就应该有几个接口,而不是建立一个庞大的臃肿的接口,容纳所有的客户端访问。
原文链接: 4.1 接口隔离原则的定义