坚实原则:接口隔离原则
以前,我们研究了liskov替代原理。 下一个原则是接口隔离 。 接口隔离原则(ISP)指出,不应强迫任何客户端依赖其不使用的方法。
想象一下一个接口,在我们的代码库中有很多方法,尽管只有一部分方法被实现,但我们的许多类都实现了该接口。
在我们的案例中,运动员界面是一个包含运动员某些动作的界面。
package com.gkatzioura.solid.segragation;public interface Athlete {void compete();void swim();void highJump();void longJump();}
我们添加了比赛方法,但还添加了一些额外的方法,例如游泳highJump和longJump。
假设JohnDoe是一名游泳运动员。 通过实现Athlete接口,我们必须实现JohnDoe永远不会使用的诸如highJump和longJump之类的方法。
package com.gkatzioura.solid.segragation;public class JohnDoe implements Athlete {@Override public void compete() {System.out.println("John Doe started competing");}@Override public void swim() {System.out.println("John Doe started swimming");}@Override public void highJump() {}@Override public void longJump() {}
}
对于可能是田径运动员跳高和跳远比赛的另一位运动员,也会出现相同的问题。
我们将遵循界面隔离原则,并且将重构原始界面,并创建另外两个界面,一个用于跳跃运动员,另一个用于游泳运动员。
package com.gkatzioura.solid.segragation;public interface SwimmingAthlete extends Athlete {void swim();}
package com.gkatzioura.solid.segragation;public interface JumpingAthlete extends Athlete {void highJump();void longJump();}
因此,John Doe不必执行他无法执行的动作。
package com.gkatzioura.solid.segragation;public class JohnDoe implements SwimmingAthlete {@Overridepublic void compete() {System.out.println("John Doe started competing");}@Overridepublic void swim() {System.out.println("John Doe started swimming");}}
您可以在github上找到源代码。 最后一个原则是依赖倒置原则。
另外,我还编写了备忘单,其中包含一些扎实的原则。
在链接中注册以接收它。
翻译自: https://www.javacodegeeks.com/2018/02/solid-principles-interface-segregation-principle.html
坚实原则:接口隔离原则相关推荐
- 【设计模式】软件设计七大原则 ( 接口隔离原则 | 代码示例 )
文章目录 一.接口隔离原则简介 二.接口隔离原则代码示例 ( 反面示例 ) 1.接口定义 ( 接口臃肿 ) 2.实现类 1 3.实现类 2 三.接口隔离原则代码示例 ( 推荐用法 ) 1.接口 1 2 ...
- 六大设计原则-接口隔离原则
1.开闭原则 2.接口隔离原则 3.依赖倒置原则 4.迪米特原则 5.里氏替换原则 6.单一职责原则 接口隔离原则 客户端不应该依赖它不需要的接口:一个类 ...
- 设计模式系列(二)七大设计原则-----接口隔离原则
七大设计原则之单一接口隔离原则 接口隔离原则 案例 应用实例 改进 上一篇:设计模式系列(一)七大设计原则-----单一职责原则 下一篇:设计模式系列(三)七大设计原则-----依赖倒转原则 接口隔离 ...
- 软件设计原则——接口隔离原则
客户端不应该被迫依赖于它不使用的方法: 一个类对另一个类的依赖应该建立在最小的接口上. [例]安全门案例 我们需要创建一个黑马品牌的安全门,该安全门具有防火.防水.防盗的功能. 可以将防火,防水,防盗 ...
- java设计模式之设计原则④接口隔离原则
定义: (1)用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口. (2)一个类对一个类的依赖应该建立在最小的接口上. (3)建立单一接口,不要建立庞大臃肿的接口. (4)尽量细化 ...
- 设计模式原则 - 接口隔离原则(二)
接口隔离原则 一 官方定义 二 案例演示 普通方案 案例分析 解决方案 解决方案 案例总结 三 与单一职责原则对比 一 官方定义 接口隔离原则(Interface Segregation Princi ...
- 设计原则——接口隔离原则
1.全称 Interface Segregation Principle 缩写为:ISP 2.解释 要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法 单一职责原 ...
- 设计原则(单一职责原则 开放封闭原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则)
设计原则 单一职责原则(SRP) 从三大特性角度看原则: 应用的设计模式: 开放封闭原则(OCP) 从三大特性角度看原则: 应用的设计模式: 里氏替换原则(LSP) 从三大特性角度看原则: 应用的设计 ...
- Java设计模式七大原则-接口隔离原则
接口隔离原则(Interface Segregation Principle) 基本介绍 1) 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上 2) 先看一张图: 类A ...
- 六大设计模式原则-接口隔离原则
一.接口隔离原则定义 接口隔离原则定义如下: 接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些 ...
最新文章
- Windows下的cmd小技巧
- java基础知识讲解(一)数据类型和运算符
- python同时输入多个变量_python同时给多个变量赋值|python3教程|python入门|python教程...
- MDI窗体简单方法(调用,闪屏)
- MySQL数据库安装Version5.7.25
- 举例让抽象问题具体化:二叉搜索树的后序遍历序列
- 经营公司最核心的是经营员工的人生
- Oracle数据库中文乱码问题解决
- 利用工具,促进有效沟通
- 数据库系统工程师教程 (第三版)前言
- 什么平板电脑能够用来编程
- 【微处理器】基于FPGA的微处理器VHDL开发
- java毕业设计视频点播系统Mybatis+系统+数据库+调试部署
- 计算机辅助设计的英语缩写是什么,计算机辅助设计的英文缩写是什么
- WIN7截图工具灵活使用
- matlab数字信号处理(1)——正弦信号生成与时域分析
- python 跳跃游戏
- Google左侧排名优化
- 速卖通教你如何提升店铺转化率——测评补单
- 相似度80%,Apache 孵化项目 StreamPark被公然抄袭!