zoukankan      html  css  js  c++  java
  • 八、ISP 接口隔离原则

    ISP应用的场景是某些类不符合SRP原则,但使用这些类的客户端应该根据它们的父类来使用(我感觉这句话应该改为:客户端应该根据它们的抽象类接口来使用它们),而不是直接使用它们。

    定义:

    • 客户端不应该依赖它不需要的接口
    • 类间的依赖关系应该建立在最小的接口上

    我们可以把这两个定义概括为一句话:建立单一接口,不要建立臃肿庞大的接口。再通俗一点讲:接口尽量细化,同时接口中的方法尽量少。

    提供给每个模块的都应该是单一接口,提供给几个模块就应该有几个接口,而不是建立一个庞大的臃肿的接口,容纳所有的客户端访问。

    接口是我们设计时对外提供的契约,通过分散定义多个接口,可以预防未来变更的扩散,提高系统的灵活性和可维护性。

    含义:

    • 接口要尽量小

    这是接口隔离原则的核心定义,不出现臃肿的接口(Fat Interface),但是“小”是有限度的,首先就是不能违反单一职责原则。

    根据接口隔离原则拆分接口时,首先必须满足单一职责原则。

    • 接口要高内聚

    高内聚就是要提高接口、类、模块的处理能力,减少对外的交互。

    具体到接口隔离原则就是,要求在接口中尽量少公布public方法,接口是对外的承诺,承诺地越少对系统开发越有利,变更的风险也就越少,同时也有利于降低成本。

    • 定制服务

    定制服务就是单独为一个个体提供优良的服务。

    • 接口设计是有限度的

    接口的设计粒度越小,系统越灵活,这是不争的事实。但是,灵活的同时也带来了结构的复杂化,开发难度增加,可维护性降低,这不是一个项目或产品所期望看到的,所以接口设计一定要注意适度,这个度只能根据经验和常识判断,没有一个固化或可测量的标准。

  • 相关阅读:
    elasticsearch设置共享目录、创建备份、恢复备份
    elasticsearch通过logstash去重数据
    Densite_RANK 函数
    Echarts立体地图加3D柱图可点击可高亮选中的开发
    Hadoop3.x-Yarn
    Hadoop3.x-MapReduce
    python dvwa时间盲注自动化脚本(level=low)
    python dvwa布尔盲注自动化脚本(level=low)
    时序数据库 Apache-IoTDB 源码解析之元数据索引块(六)
    网易2020校招笔试- 系统开发/研发工程师(提前批) [编程题]序列维护
  • 原文地址:https://www.cnblogs.com/mysic/p/8660840.html
Copyright © 2011-2022 走看看