实例接口:一个类就是一个实例接口。此类的所有实例都符合这个类定义的接口。

类接口:就是高级语言中的interface或纯虚类。

接口隔离原则:Clients should not be forced to depend upon interfaces that they don't use.(客户端不应该依赖它不需要的接口)。The dependency of one class to another one should depend on the smallest possible interface.(类之间的依赖关系应该建立在最小的接口上 。)

接口隔离原则与单一职责原则都是对接口设计的规范。不过,单一职责原则强调的是职责的单一,即业务划分上的单一;接口隔离原则强调的是具体实现时,接口的规模不能过大。比如,一个接口的设计符合单一职责原则,只包含一个职责的定义,但是实现这个职责需要较多的函数或方法,而并不是所有的模块使用此接口时都会用到所有的方法,那么这个接口的设计就不符合接口隔离原则。

接口隔离原则对接口进行规范,要求:

1.接口规模要小。一个接口定义中不应该包含大量方法。但是,在设计接口时优先考虑单一职责原则。单一职责原则从业务上划分后,再考虑是否符合接口隔离原则。如果接口隔离原则过度使用——过分强调缩小接口规模,就会陷入过度设计的泥潭。

2.接口要符合高内聚的要求。面向对象设计最求的就是高内聚低耦合。高内聚有利于降低变更的风险,也有利于降低成本。一个接口应该对外公布较少的public函数或方法,尽量减少与外部的交互。

3.定制服务。一个接口提供给需要提供给不同的用户,如果不同的用户在调用此接口时的表现是不同的,就需要考虑把此接口进行进一步的划分,变成两个提供不同服务的接口。

4.接口不要过渡设计。小接口在提高系统的灵活性的同时,也会大大增加系统的复杂性,使得开发和维护都变得困难。

设计模式(一):接口隔离原则相关推荐

  1. 深入浅出设计模式_深入浅出设计模式03接口隔离原则

    本文作者:开课吧寂然 图文编辑:开三金 大家好~,我是寂然~,本节课呢,我来给大家介绍设计模式原则之接口隔离原则. 话不多说,我们直接进入正题,老规矩,首先带大家了解一下接口隔离原则的官方定义,并作一 ...

  2. 围观设计模式(4)--接口隔离原则(ISP,Interface Segregation Principle)

    接口隔离原则(英语:interface-segregation principles, 缩写:ISP)指明没有客户(client)应该被迫依赖于它不使用方法.接口隔离原则(ISP)拆分非常庞大臃肿的接 ...

  3. 【设计模式】接口隔离原则

    接口隔离原则 原则概述:客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上 如图中,[对象B]依赖[类D],[对象C]依赖[类E],但[类D]和[类E]都依赖于[接口A]. ...

  4. 设计模式:接口隔离原则

    定义 接口隔离原则(Interface Segregation Principle, ISP),定义为: Clients should not be forced to depend upon int ...

  5. 设计模式之接口隔离原则

    接口隔离原则定义: 一个类对另一个类的依赖应该建立在最小的接口上,使得接口中的方法得到充分利用. uml图: 相关代码1: /*接口没有得到充分的利用,所以他违反了接口隔离原则. */public c ...

  6. 嘻哈说:设计模式之接口隔离原则

    1.定义 按照惯例,首先我们来看一下接口隔离原则的定义. 类间的依赖关系应该建立在最小的接口上. 接口中的方法应该尽量少,不要使接口过于臃肿,不要有很多不相关的逻辑方法. 有点类似于单一职责原则,都是 ...

  7. 设计原则(单一职责原则 开放封闭原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则)

    设计原则 单一职责原则(SRP) 从三大特性角度看原则: 应用的设计模式: 开放封闭原则(OCP) 从三大特性角度看原则: 应用的设计模式: 里氏替换原则(LSP) 从三大特性角度看原则: 应用的设计 ...

  8. [设计模式]设计模式之禅关于接口隔离原则

    在讲接口隔离原则之前,先明确一下我们的主角--接口.接口分为两种: ● 实例接口(Object Interface),在Java中声明一个类,然后用new关键字产生一个实例,它是对一个类型的事物的描述 ...

  9. 接口隔离原则_设计模式六大原则

    作者:VieLei 原文:https://blog.csdn.net/s10461/article/details/53941097 在android中我们常提起的设计模式大约有23种,利用好设计模式 ...

  10. 深入浅出设计模式原则之接口隔离原则(ISP)

    下面以学生成绩管理程序为例介绍接口隔离原则的应用(工程源码). 分析:学生成绩管理程序一般包含插入成绩.删除成绩.修改成绩.计算总分.计算均分.打印成绩信息.査询成绩信息等功能,如果将这些功能全部放到 ...

最新文章

  1. HIVE QL 杂记
  2. [Swift]LeetCode218. 天际线问题 | The Skyline Problem
  3. 二分大法| 求X的开方,结果一个公式解决! (力扣69.X 的平方根)
  4. [深度学习] 自然语言处理---Transformer原理(一)
  5. mongodb的IO测试工具 mongoperf
  6. 老表,教你一招啊!!!如何用python实现将csv文件快速导入数据库,建议收藏!!!
  7. mfc 添加变量出现灾难性故障_实验室近期论文:储罐灾难性失效事故的漫堤预测模型...
  8. 成功解决:[‘‘, ‘‘, __ob__: Observer]
  9. IT天空WIN7 X64补丁包201508版的利用
  10. 超详细的抖音养号上热门技巧,看完这一篇就够了
  11. 全国离婚率下跌约五成是因为它?
  12. 鼠标在微信开发工具中消失(而在手机模拟器以外可以显示)
  13. HTML5--CSS3在线编辑工具 超酷!!!(24款非常实用的CSS3工具终极收藏)
  14. FT232H如何使用jtag接口
  15. DynaTrace Ajax Edition:IE浏览器性能分析工具
  16. python中的数据过滤
  17. 关于pycharm找不到已经安装的模块问题的解决方案module ImportError
  18. C/C++编程学习 - 第19周 ⑩ 派
  19. 【Python入门指北】 Python计算机二级知识点
  20. 安装envi时,步骤都正确,却还是停留在运行界面打不开可能是什么原因导致的

热门文章

  1. Java实现三角形图案绘制**
  2. 微信小程序--服务器数据交互
  3. CANOE入门:CAPL语言实现诊断发送和接收
  4. 文件IO---标准输入、标准输出和标准错误
  5. Maven使用Profile
  6. TreeMap和LinkedHashMap
  7. 啤酒灌装机的控制器西门子S7-200SMART
  8. Vivado 2020.1 开放下载,中文资料随贴奉送
  9. 数字IC所用软件及IP分类
  10. WLAN@Wi-Fi