【Java高级工程师蜕变之路】074 架构设计基本原则之接口隔离原则(ISP)
接口隔离原则(ISP)
ISP
,Interface Segregation Principles
接口隔离原则
接口隔离原则的定义
将接口拆分成更小更具体的接口,让接口中只包含用户感兴趣的方法。
接口隔离和单一职责都是为了高类聚、低耦合,体现了封装思想。两者区别:
- 单一职责注重的是职责,接口隔离注重对接口依赖的隔离
- 单一职责主要约束类,针对的是程序中的实现和细节,接口隔离主要约束接口,主要针对抽象和程序整体框架的构建。
接口隔离原则的优点
接口隔离是为了约束接口,降低类对接口的依赖性,优点如下:
- 提个系统灵活性和可维护性
- 降低系统耦合性
- 提高系统稳定性
- 多个接口能体现抽象的层次,通过接口继承,实现对总接口的定义
- 减少代码冗余
接口隔离的实现方法
应用接口隔离,有几个规则需要衡量:
- 接口尽量小,但是要有限度。一个接口只服务于一个子模块或者业务逻辑。
- 为依赖接口的类定制服务。只提供调用者需要的方法,屏蔽不需要的方法。
- 根据具体业务和环境来定,不盲目拆分。
- 提高内聚,减少对外交互。使接口用最少的方法完成最多的事情。
以学生管理程序为例:
学生程序管理一般包含插入成绩、删除成绩、修改成绩、计算总分、计算平均分、打印成绩、查询成绩等功能
-
放在一个接口中,不太合理
-
放到三个接口中