• 六大设计原则之接口隔离原则


    定义:客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口

    问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须实现他们不需要的办法。

    解决方案:将接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系,也就是采取接口隔离原则

    类A依赖接口I中的方法1、方法2、方法3,类B是对类A依赖的实现,类C依赖接口I中的方法1、方法4,方法5,类D是对类C依赖的实现。对于类B和类D来说,虽然他们都存在用不着的方法(图中红色标记),但是都是实现了接口I,也必须要实现这些用不着的方法。可见,接口国语臃肿,不管对于依赖它的类有没有用处,实现类中都必须去实现这些方法。如果将这个设计修改为符合接口隔离原理,就必须对接口I进行拆分。

    接口隔离原则的含义:建立单一接口,不要建立庞大臃肿的接口帝国。尽量细化接口,接口中的方法尽量少(类似于单一职责原则)。也就是说,依赖几个专用的接口比依赖所有接口更灵活。

    区别:

    • 单一职责原则注重的是职责(业务逻辑,或者对象能够承担的责任,并以某种行为方式来执行);而接口隔离原则注重的是对接口依赖的隔离。
    • 单一职责原则主要是约束类,其次是接口和方法。它针对的是程序中的实现和细节;而接口隔离原则主要是约束接口,主要针对抽象,针对程序整体框架的构建。

    接口隔离原则,一定要适度,接口设计的太大或者太小都不好。

  • 相关阅读:
    char与unsigned char的区别
    C语言 —— sprintf()函数
    char *s 与 char s[ ]的区别
    打印不同对象的字节表示 ( 对int*强制转换成unsigned char*的理解 )
    洛谷P2242 公路维修问题(Road)
    洛谷P1209 [USACO1.3]修理牛棚 Barn Repair
    洛谷P1345 [USACO5.4]奶牛的电信Telecowmunication
    洛谷P2246 SAC#1
    Bzoj4300 绝世好题
    Uva1398 Meteor
  • 原文地址:https://www.cnblogs.com/gudulijia/p/6477549.html
Copyright © 2020-2023  润新知