定义

  1. 用多个专门的接口,而使用单一的总接口,客户端不应该依赖它不需要的接口
  2. 一个类对一个类的依赖应该建立在最小的接口上
  3. 建立单一接口,不要建立庞大臃肿的接口
  4. 尽量细化接口,接口中的方法尽量少

注意

适度原则,一定要适度!!!否则,导致接口过多,复杂不好管理

优点

符合我们常说的高内聚,低耦合的设计思想,从而使得类具有很好的可读性、可扩展性和可维护性

例子

场景: 有一个 interface 具有 规范有些某些方法
Animal.java

public interface Animal {void swim();void eat();void fly();
}

现在我们要实现一个Dog类

Dog.java

public class Dog  implements Animal{@Overridepublic void swim() {}@Overridepublic void eat() {}@Overridepublic void fly() {}
}

我们发现, 狗不会飞啊,fly() 方法只能空实现,是一个无用的方法,如果要实现的接口中有更多的方法,将会导致更多的无用的代码,会导致不容易维护,不容易阅读。

解决办法:接口隔离

将接口细化,拆分
FlyAnimal.java

public interface FlyAnimal{void fly();
}

EatAnimal.java

public interface FlyAnimal{void eat();
}

SwimAnimal.java

public interface FlyAnimal{void fly();
}

Dog.java

public class Dog  implements EatAnimal, SwimAnimal{@Overridepublic void swim() {}@Overridepublic void eat() {}
}

这样,狗类就不用实现无用的方法fly(), 接口隔离的原则得以体现

接口隔离原则-快速理解相关推荐

  1. 软件设计七大原则:(四)接口隔离原则

    一.接口隔离原则简介 用多个专门的接口,而不再使用单一的总接口,客户端不应该依赖它 不需要的接口. 一个类对一个类的依赖应该建立在最小的接口上. 建立单一接口,不要建立庞大臃肿的接口. 尽量细化接口, ...

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

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

  3. 深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP

    前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第4篇,接口隔离原则ISP(The Interface Segregation Principle). 英文原文:htt ...

  4. 如何理解接口隔离原则?

    接口隔离原则: 客户端不应该依赖它不需要的接口:一个类对另一个类的依赖应该建立在最小的接口上. (图片来自网络) 见上图,该把接口细分到3个接口中去,保证每个类都只实现它需要的接口. 接口隔离原则与单 ...

  5. 深入理解接口隔离原则(Interface Segregation Principle)

    Interface Segregation Principle What 什么是接口隔离原则? Why 为什么要使用接口隔离原则? How 如何使用接口隔离原则? 示例 结论 What 什么是接口隔离 ...

  6. 单一职责原则和接口隔离原则区别的理解

    网上对于两者的区别众说纷纭,总是一套理论下来跟没有说一样,下面说说自己的理解:  单一职责原则: 是将某一职责的方法全放在一个接口中,这时候就会出现实现该接口的类必须实现该接口中自己用不到的方法(违背 ...

  7. 接口隔离原则:接口里的方法,你都用得到吗?

    SRP 一个类的变化来源应该是单一的 OCP 不要随意修改一个类 LSP 设计好类的继承关系. 我们强调面向接口编程,想实现OCP或DIP,都要依赖于接口实现. 接口不就是一个语法吗?把需要的方法都放 ...

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

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

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

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

最新文章

  1. DISTINCT 去掉重复记录
  2. kbmmw 5.0 中的REST 服务
  3. mvc试图 下拉框不重复_面试前不巩固一下基础知识、刷刷题吗?
  4. RK3288_Android7.1写一个GPIO驱动控制LED灯亮灭
  5. HTML+CSS【超浪漫的表白网页代码】不会编程也能制作送给女朋友的表白网站 (1)
  6. C语言程序设计--新生入学登记系统
  7. 欧洲计算机专业排名,最新!2021年QS世界大学学科排名发布!欧洲各国各学科专业排名表现抢眼!...
  8. R语言图像处理EBImage包详解
  9. 修改Odoo 8版权信息
  10. 从红包场景谈事务一致性
  11. 时光荏苒,岁月静好-----2013年终总结
  12. WORD中表格的跨页显示
  13. 大整数加法基本思路和代码(C++实现)
  14. 502 问题怎么排查?
  15. 牛客网计算机考研机试真题-abc
  16. error while loading shared libraries: librosconsole.so: cannot open shared object file: No such file
  17. HTML CSS学习总结
  18. 计算机音乐的感想,音乐教师工作心得体会(精选7篇)
  19. Cent0S7安装oracle11g
  20. 挂载 nfs 文件系统

热门文章

  1. commit 提交规范
  2. tshark抓包小结
  3. OTRS安装使用系列之三——不同的OTRS…
  4. ROS学习记录(二)阿克曼转向车运动学模型及在gazebo中搭建仿真环境
  5. log4cpp源码阅读:Appender组件学习
  6. Linux LCD 驱动
  7. 开发推荐书单 程序员必读书目推荐 测试必读书目 管理必读 技术组长必读 前端开发必读
  8. hashTabel List 和 dic
  9. TP5.1自定义创建命令(php think make:controller app\index\User)
  10. 菲尔人格测试今天你测了吗?