接口隔离原则(ISP)

接口隔离原则(Interface Segregation Principle,常常略写做ISP)讲的是:使用多个专门的接口比使用单一的总接口要好。

换言之,从一个客户类的角度来讲,一个类对另外一个类的依赖性应当使建立在最小的接口上的。

什么是接口隔离原则

角色的合理划分

将“接口”理解为一个类所提供的所有方法的特征集合,也就是一种在逻辑上存在的概念。接口的划分直接带来类型的划分。

角色划分的原则叫做角色隔离原则。

定制服务

将接口理解成为狭义的接口,接口隔离原则讲的就是为同一个角色提供宽、窄不同的接口,以对付不同的客户端,如右图所示。这种方法在服务行业叫做定制服务(Customized Service)。

image

在上面的示意性类图中,有一个角色Service以及三个不同的客户端。这三个客户端的服务都是稍稍不同的,因此系统分别为他们提供了三个不同的接口,即IService1,IService2以及IService3。显然,每一个接口都仅仅将客户端需要的行为暴露给客户端,而没有将客户端所不需要的行为放到接口中。

 

接口污染

过于臃肿的接口就是对接口的污染(Interface Contamination)。

由于每一个接口都代表一个角色,实现一个接口的对象,在它的整个生命周期中都扮演这个角色,因此将角色区分清楚就是系统设计的一个重要工作。因此,一个符合逻辑的推断,不应当将几个不同的角色都交给同一个接口,而应当交给不同的接口。

与迪米特法则的关系

迪米特法则要求任何一个软件实体,除非绝对需要,不然不要与外界通信。

即使必须进行通信,也应当尽量限制通信的广度和深度。

 

——–

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《接口隔离原则(ISP)
本文地址:https://www.zhiletu.com/archives-8387.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微