一、接口隔离原则
基本介绍:客户端不应该依赖于它不需要的接口即一个类对另一个类的依赖应该建立在最小的接口上。
案例地址:https://github.com/Simple-Coder/design-pattern
二、测试场景
①类A通过Interface1会依赖(使用)B,但是A中只会使用到接口中的1,2,3三个方法。
②类C通过Interface1会依赖(使用)D,但是C中只会使用到接口中的1,4,5三个方法。
1、根据上述类图设计进行编写代码
分析:
①B、D分别实现了Interface1的5个方法
②A依赖使用B时只用到了1,2,3方法,即B实现的4,5方法可以说是白写了,因为我们没用到
③C依赖使用D时只用到了1,4,5方法,即D实现的2,3方法可以说也是白写了,因为我们也没用到
问题:
类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类D,如果接口Interface1对于类A和类C来说都不是最小接口,那么类A和类D都必须实现它们不需要的方法
2、根据接口隔离原则改造
采用接口隔离原则:将接口interface1拆分为独立的几个接口,类A与类C分别与它们需要的接口建立依赖关系
2.1代码实现
2.2操练一把
三、总结
1、如上述方案1,如不使用接口隔离原则,则会造成浪费,例A通过接口依赖B使用1、2、3方法,而B实现了所有方法,A却没有用到4、5方法,这不是浪费嘛
2、接口隔离原则:客户端不应该依赖于它不需要的接口即一个类对另一个类的依赖应该建立在最小的接口上(接口中我用不到的方法,把接口拆分成小的接口,依赖小接口)