zoukankan      html  css  js  c++  java
  • 6大设计原则之接口隔离原则

    接口隔离原则的定义

    什么是接口.

    1. 实例接口,比如定义了一个Person类,然后 Person p = new Pserson(); 产生一个实例,Person类就是 p 的接口
    2. 类接口,就是Java中使用 interface 定义的接口

    什么是隔离

    隔离要求将接口尽量细化,同时接口中的方法尽量少.

    接口隔离原则的实现

    比如现在有一个人,他身兼数职,是一个老师,要教书,是一个学生,要学习,类图如下:

    153206895076055072ec6f1 (310×289)

    如果有一天,他不在教书了,或者又有了新的职业,那我们还要修改调用该类的代码,更好的做法是将臃肿的接口变更为几个独立的接口

    1532069279806572d680b26 (623×338)

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

    接口的规范约束

    1. 接口要尽量小,这是接口隔离原则的核心定义,但是"小"是有限度的,首先就是不能违背单一职责原则.
    2. 接口要高内聚,高内聚就是提高接口、类、模块的处理能力,减少对外的交互.具体就是,要求在接口中尽量少公布 public 方法,接口是对外的承诺,承诺越少对系统的开发越有利,变更的风险也就越少,同时也有利于降低成本
    3. 定制服务,定制服务就是单独为一个个体提供优良的服务,只提供访问者需要的方法
    4. 接口设计是有限度的,接口的设计粒度越小,系统越灵活.但是,灵活的同时也带来了结构的复杂化,开发难度增加,可维护性降低,所以接口设计一定要注意适度.

    接口隔离原则就是对接口的定义,同时也是对类的定义,接口和类尽量使用原子接口或原子类来组装.

  • 相关阅读:
    POJ 3268 Silver Cow Party (Dijkstra)
    怒学三算法 POJ 2387 Til the Cows Come Home (Bellman_Ford || Dijkstra || SPFA)
    CF Amr and Music (贪心)
    CF Amr and Pins (数学)
    POJ 3253 Fence Repair (贪心)
    POJ 3069 Saruman's Army(贪心)
    POJ 3617 Best Cow Line (贪心)
    CF Anya and Ghosts (贪心)
    CF Fox And Names (拓扑排序)
    mysql8.0的新特性
  • 原文地址:https://www.cnblogs.com/hujingnb/p/10171519.html
Copyright © 2011-2022 走看看