接口隔离原则
接口隔离原则 InterfaceSegregation Principles ISP
- 定义:客户端不应该依赖它不需要的接口。
- 定义2:类间的依赖关系应该建立在最小的接口上。
示例
- 在java6以前的JDK版本中,存在一个问题,那就是在使用OutpitStream或者其他可关闭的对象之后,我们必须保证它们最终被关闭了
- 在java中有一个closeable接口,该接口标识了一个可关闭的对象。它只有一个close()方法,通过阅读API方法我们知道,closeable接口有100多个实现类,那么也就是说,我们在使用这100多个类型的对象时,都需要主动去关闭他们。这样会有大量的代码的冗余,降低代码的可拓展性。
- 所以我们使用依赖closeable抽象而不依赖具体实现
/**
* Describe:closeable接口实现类的关闭工具
* wx on 2016/12/28.
*/
public class CloseUtils {
private CloseUtils() {
}
public static final void closeQuietly(Closeable closeable) {
if (closeable != null) {
try {
closeable.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
这样建立在最小化依赖原则的基础上,只需要知道这个对象是可以关闭的即可。其它的不需要关心,这就是接口隔离原则。