接口隔离原则

目录

 

接口隔离原则

定义

含义

优点

注意点

其他

单一职责原则与接口隔离原则


接口隔离原则

定义

2002年罗伯特·C.马丁提出了接口隔离原则(Interface Segregation Principle,ISP):客户端不应该被迫依赖于它不使用的方法(Clients should not be forced to depend on methods they do not use)。一个类对另一个类的依赖应该建立在最小的接口上(The dependency of one class to another one should depend on the smallest possible interface)。

含义

为各个类建立仅包含所需功能的专用接口,不要试图建立一个包含所有功能的庞大的接口供所有类使用。

接口隔离原则认为,使用多个专用的接口比使用单一的总接口要好。

优点

接口隔离原则旨在约束接口包含的方法数量不要过多,遵循接口隔离原则至少有以下优点:

  1. 限制接口的粒度,包含的方法越少接口的粒度越小,粒度越小接口的可复用性越高。
  2. 接口中包含的方法越少,接口的稳定性越高,系统的稳定性越高。
  3. 由于限制了接口内方法的数量,变更的扩散能够被有效控制。
  4. 使用多个专用的接口更能体现对象的层次,提高了代码的可读性。
  5. 提供仅包含调用方所需方法的接口,能最大程度降低调用方使用接口的代价。

注意点

并不是说接口被包含的方法数量越小越好,接口的粒度大小控制的合理确实能提升系统的稳定性,但如果粒度过小就会导致系统内接口的数量过多,反而造成系统复杂程度的提升,加大系统维护的难度。

其他

单一职责原则与接口隔离原则

假设有“学生成绩管理模块”,模块包含学生成绩录入、学生成绩修改、学生成绩删除、学科最高分查询、学科平均分查询、学生成绩查询、及格人数查询、不及格人数查询等功能,每个功能都用一个方法实现,且所有方法都放置在一个接口中:

从单一职责原则的角度看这是合理的,因为接口承担的职责确实是唯一的——学生成绩管理。但是从接口隔离原则的角度看这是不合理的,因为所有的方法都被放置在一个接口中,接口显得过于臃肿。

假设学生使用本模块时只有查询成绩的权限,Student类只需要使用“学生成绩查询()”方法,但是按照目前的情况,Student类将被迫获取其他几个方法的使用权限,这是违背接口隔离原则的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值