接口隔离原则

一、接口污染(interface pollution):

   1.需求:一扇能超时报警的门。

    2.设计:Door类{Open();Close();TimeOut()}

    3.当需要其他门时习惯性从Door中继承,此时会有问题:所有的门都有TimeOut()方法,即使它不需要。

二、接口隔离原则:

    1.客户不应该依赖于他们用不到的方法,只给每个客户它所需要的接口。

    2.未避免“肥接口”(fat interface),应当以一个类实现多个接口,而各客户仅获取必要的接口。

三、解决方案——分离接口的两种实现方法:

1.使用委托分离接口。(Separation through Delegation)

   ——Adapter模式

2.使用多重继承分离接口。(Separation through Multiple Inheritance)

四、

假设有A类,B接口,C类。其中A类需要继承B,但是只需要用到B中的两个方法,而C类也需要继承B,但是只需要B中的一个方法。(图不规范,望谅解)

面向对象设计原则(四) 接口隔离原则

B中通用接口太多,如果B发生变化,那么使用B接口的类或接口则会出现歧义,受到影响。

五、解决方案:将肥接口设计为多个小接口,使得客户仅获得必要的接口

面向对象设计原则(四) 接口隔离原则

六、总结:使用多个专用的小接口,而不使用一个通用的大接口。

                使用 使用多个专门的接口比使用单一接口好

                一个类对另一个类的依赖性应当建立在最小的接口上

                避免接口污染(interface pollution)

上接:面向对象设计原则(三) 单一职责原则

下接:面向对象设计原则(五) 依赖倒置原则

如有错误,还请指出,非常感谢!!


相关文章:

  • 2021-11-12
  • 2022-02-10
  • 2021-05-05
  • 2021-05-16
  • 2021-11-20
  • 2021-11-28
  • 2021-05-31
  • 2021-09-26
猜你喜欢
  • 2021-09-13
  • 2021-09-14
  • 2022-03-08
  • 2021-04-11
  • 2021-04-27
相关资源
相似解决方案