美文网首页
六大设计原则-接口隔离原则

六大设计原则-接口隔离原则

作者: 小杰66 | 来源:发表于2021-04-26 08:20 被阅读0次

    接口隔离原则

    Interface Segregation Principle 简称ISP。

    什么是接口隔离原则

    1.客户端不应该依赖它不需要的接口;
    2.一个类对另一个类的依赖应该建立在最小的接口上。

    也就是接口尽量细化,同时接口中的方法尽量少。它和单一职责原则的审视角度不同,单一职责原则要求的是职责单一,是业务逻辑的划分。而接口隔离原则要求接口的方法尽量少。

    如何做到接口隔离原则

    1. 接口要尽量小
      不出现臃肿的接口,但是小是有限度的,根据接口隔离原则拆分接口时,首先必须满足单一职责原则。
    2. 接口要高内聚,提高接口、类、模块的处理能力,减少对外的交互。
      在接口中尽量少公布public方法,接口是对外的承诺,承诺地越少对系统开发越有利,变更的风险也就越少,同时也有利于降低成本。
    3. 定制服务
      定制服务就是单独为一个个体提供优良的服务。
    4. 接口设计是有限度的
      接口的设计粒度越小,系统越灵活,这是不争的事实。但是,灵活的同时也带来了结构的复杂化,开发难度增加,可维护性降低,所以接口设计一定要注意适度。

    代码举例

    在Javascript接口可以理解为:

    1. 一个对象声明的任意一个操作都包含一个操作名称,参数对象和操作的返回值。我们称之为操作符的签名(signature)。
    2. 一个对象里声明的所有的操作被称为这个对象的接口(interface)。一个对象的接口描绘了所有发生在这个对象上的请求信息。

    第二段代码将goodStudent接口细分成了三个接口,如果后来判定好学生的标准改变了,也不用去修改接口。但是如果对所有的结果都做最小粒度的细分那就有无尽的接口了,所以设计粒度的问题还是要适度。

    class Student {
      constructor({ study, sport, talent }) {
        this.study = study;
        this.sport = sport;
        this.talent = talent;
      }
      goodStudent() {
        return this.study && this.sport && this.talent;
      }
    }
    
    class Student {
      constructor({ study, sport, talent }) {
        this.study = study;
        this.sport = sport;
        this.talent = talent;
      }
      goodstudy() {
        return this.study;
      }
    
      goodSport() {
        return this.sport;
      }
    
      goodTalent() {
        return this.talent;
      }
    }
    

    相关文章

      网友评论

          本文标题:六大设计原则-接口隔离原则

          本文链接:https://www.haomeiwen.com/subject/nmohrltx.html