Java中接口隔离原则是什么
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下Java中接口隔离原则是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.什么是接口隔离原则?客户端
千家信息网最后更新 2026年11月01日Java中接口隔离原则是什么
小编给大家分享一下Java中接口隔离原则是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1.什么是接口隔离原则?
客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口范围上。
2.对应代码
上面这张图呢,就违反了接口隔离原则。它对应的代码如下:????????????
package com.szh.principle.segregation; /** * */interface Interface1 { void operation1(); void operation2(); void operation3(); void operation4(); void operation5();} class B implements Interface1 { public void operation1() { System.out.println("B 实现了 operation1"); } public void operation2() { System.out.println("B 实现了 operation2"); } public void operation3() { System.out.println("B 实现了 operation3"); } public void operation4() { System.out.println("B 实现了 operation4"); } public void operation5() { System.out.println("B 实现了 operation5"); }} class D implements Interface1 { public void operation1() { System.out.println("D 实现了 operation1"); } public void operation2() { System.out.println("D 实现了 operation2"); } public void operation3() { System.out.println("D 实现了 operation3"); } public void operation4() { System.out.println("D 实现了 operation4"); } public void operation5() { System.out.println("D 实现了 operation5"); }} class A { //A 类通过接口Interface1 依赖(使用) B类,但是只会用到1,2,3方法 public void depend1(Interface1 i) { i.operation1(); } public void depend2(Interface1 i) { i.operation2(); } public void depend3(Interface1 i) { i.operation3(); }} class C { //C 类通过接口Interface1 依赖(使用) D类,但是只会用到1,4,5方法 public void depend1(Interface1 i) { i.operation1(); } public void depend4(Interface1 i) { i.operation4(); } public void depend5(Interface1 i) { i.operation5(); }} public class Segregation1 { public static void main(String[] args) { A a = new A(); a.depend1(new B()); // A类通过接口去依赖B类 a.depend2(new B()); a.depend3(new B()); C c = new C(); c.depend1(new D()); // C类通过接口去依赖(使用)D类 c.depend4(new D()); c.depend5(new D()); }}代码虽然很长,但是不难理解。A类依赖了B类,但是只会用到顶级接口中的1、2、3这三个方法;而C类依赖了D类,但是只会用到顶级接口中的1、4、5这三个方法,也就是说在A和B这两个类的层面上而言,和顶级接口中的4、5两个方法是没什么关联的,那么B类在实现顶级接口的时候就没必要重写4、5这两个方法了。但是这里有一个问题就是顶级接口中包括了1到5这五个方法,你如果实现这个接口就必须重写这五个方法,那么我们就可以考虑将顶级接口拆分成多个接口,需要用到哪个就实现哪个,这也就是所谓的接口隔离了。
3.改进代码
经过上面的一番叙述,我们可以将代码改写成下面的形式。
即将顶级接口拆分成3个小接口,B、D两个类根据实际情况该实现哪个接口就实现哪个接口(因为这五个方法已经被分开了)。
package com.szh.principle.segregation.improve; /** * */interface Interface1 { void operation1();} interface Interface2 { void operation2(); void operation3();} interface Interface3 { void operation4(); void operation5();} class B implements Interface1, Interface2 { public void operation1() { System.out.println("B 实现了 operation1"); } public void operation2() { System.out.println("B 实现了 operation2"); } public void operation3() { System.out.println("B 实现了 operation3"); }} class D implements Interface1, Interface3 { public void operation1() { System.out.println("D 实现了 operation1"); } public void operation4() { System.out.println("D 实现了 operation4"); } public void operation5() { System.out.println("D 实现了 operation5"); }} class A { // A 类通过接口Interface1,Interface2 依赖(使用) B类,但是只会用到1,2,3方法 public void depend1(Interface1 i) { i.operation1(); } public void depend2(Interface2 i) { i.operation2(); } public void depend3(Interface2 i) { i.operation3(); }} class C { // C 类通过接口Interface1,Interface3 依赖(使用) D类,但是只会用到1,4,5方法 public void depend1(Interface1 i) { i.operation1(); } public void depend4(Interface3 i) { i.operation4(); } public void depend5(Interface3 i) { i.operation5(); }} public class Segregation2 { public static void main(String[] args) { A a = new A(); a.depend1(new B()); // A类通过接口去依赖B类 a.depend2(new B()); a.depend3(new B()); C c = new C(); c.depend1(new D()); // C类通过接口去依赖(使用)D类 c.depend4(new D()); c.depend5(new D()); }}4.接口隔离原则总结
类A通过接口Interface1依赖类B,类C通过接口Interfacel依赖类D,如果接口Interface1对于类A和类C来说不是最小接口,那么类B和类D必须去实现他们不需要的方法。
将接口Interface1拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。
以上是"Java中接口隔离原则是什么"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
接口
方法
隔离
顶级
原则
代码
两个
也就是
篇文章
最小
三个
内容
面的
必要
没什么
不怎么
也就是说
多个
大部分
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广东万易互联网科技有限公司惠州分公司
互联网科技公司起名
互联网电商科技
互联网核心科技是什么
喔噻互联网科技
奇酷互联网科技
易通互联网络科技有限公司
互联网科技小额贷款
融贸通互联网科技
湖南洣水互联网科技有限公司扣款
隆华科技工业互联网
晓花互联网科技有限公司网址
广西互联网科技孵化中心
乌鲁木齐新华智原互联网科技学校
山东星卡互联网科技有限公司官网
江苏苏星互联网科技有限公司
银行科技岗属于互联网吗
承德科技产业互联网平台
现代科技的标志之一的互联网
恒生科技互联网指数十大成分股
互联网科技的英文
互联网科技公司招聘
云创客互联网科技公司
互联网金融科技公司干啥的
厦门千工互联网科技有限公司
消费医药和互联网科技
深圳市优智互联网科技有限公司
广东工业互联网大赛深圳学泰科技
易企秀互联网科技是做什么的
中国互联网公司的科技投入