iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java接口隔离原则实例分析
  • 122
分享到

Java接口隔离原则实例分析

2023-06-29 03:06:32 122人浏览 安东尼
摘要

这篇“Java接口隔离原则实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java接口隔离原则实例分析”文章吧。定义接

这篇“Java接口隔离原则实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java接口隔离原则实例分析”文章吧。

定义

接口隔离原则(Interface Segregation Principle),又称为ISP原则,官方定义为

客户端不应该依赖它不需要的接口

类间的依赖关系应该建立在最小的接口上

简单点来讲就是在一个类中不要定义过多的方法,接口应该尽量简单细化

案例

需求

假设有这样一个案例场景,现在有一个接口Repair,给定他有三个能力,可以修汽车,修火车,修飞机, 两个实现类张师傅,李师傅分别具有这些能力,有一个4S店类,假设是需要张师傅来修汽车和修飞机,而另一个4s店类需要李师傅来修汽车和修火车

方案一

定义维修接口类Repair.java

public interface Repair {        void car();        void train();        void air();}

维修李师傅类RepairLi.java

public class RepairLi implements Repair{    @Override    public void car() {        System.out.println("李师傅修汽车");    }    @Override    public void train() {        System.out.println("李师傅修火车");    }    @Override    public void air() {        System.out.println("李师傅修飞机");    }}

维修王师傅类RepairWang.java

public class RepairWang implements Repair{    @Override    public void car() {        System.out.println("王师傅修汽车");    }    @Override    public void train() {        System.out.println("王师傅修火车");    }    @Override    public void air() {        System.out.println("王师傅修飞机");    }}

4s店1

public class S1Shop {        public void car(Repair repair){        repair.car();    }        public void train(Repair repair){        repair.train();    }}

4s店2

public class S2Shop {        public void car(Repair repair){        repair.car();    }        public void air(Repair repair){        repair.air();    }}

测试类1

public class Test1 {    public static void main(String[] args) {        // 4s店1        new S1Shop().car(new RepairLi());        new S1Shop().train(new RepairLi());        // 4s店2        new S2Shop().car(new RepairWang());        new S2Shop().air(new RepairWang());    }}

方案二

定义维修汽车接口

public interface RepairCar {        void car();}

定义维修火车类

public interface RepairTrain {        void train();}

定义维修飞机类

public interface RepairAir {        void air();}

4s店1

public class S1ShopNew {        public void car(RepairCar repairCar){        repairCar.car();    }        public void train(RepairTrain repairTrain){        repairTrain.train();    }}

4s店2

public class S2ShopNew {        public void car(RepairCar repairCar){        repairCar.car();    }        public void air(RepairAir repairAir){        repairAir.air();    }}

测试类

public class Test2 {    public static void main(String[] args) {        // 4s店1        new S1ShopNew().car(new RepairLiNew());        new S1ShopNew().train(new RepairLiNew());        // 4s店2        new S2ShopNew().car(new RepairWangNew());        new S2ShopNew().air(new RepairWangNew());    }}

对比分析

方案一,违反了接口隔离原则,因为李师傅和王师傅都实现了维修接口的三个方法:修汽车,修火车,修飞机。但需求中并不需要这么多,只需要李师傅修汽车和火车,王师傅修汽车和飞机,依赖关系不是建立在最小接口上

方案二,遵守了接口隔离原则,对李师傅和王师傅类都进行了接口隔离,实现了各自的两个方法,避免了耦合

以上就是关于“Java接口隔离原则实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: Java接口隔离原则实例分析

本文链接: https://www.lsjlt.com/news/322200.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java接口隔离原则实例分析
    这篇“Java接口隔离原则实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java接口隔离原则实例分析”文章吧。定义接...
    99+
    2023-06-29
  • Java中接口隔离原则是什么
    小编给大家分享一下Java中接口隔离原则是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.什么是接口隔离原则?客户端不应该依赖它不需要的接口,即一个类对另一...
    99+
    2023-06-29
  • C#接口隔离原则怎么实现
    今天小编给大家分享一下C#接口隔离原则怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。接口隔离原则(ISP)定义:使用...
    99+
    2023-06-29
  • java面向对象设计原则之接口隔离原则示例详解
    目录概念实现拓展概念 小接口原则,即每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。如下图所示定义了一个接口,包含了5个方法,实现类A用到了3个方法、实现类B用...
    99+
    2024-04-02
  • C#实现六大设计原则之接口隔离原则
    接口隔离原则(ISP)定义: 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来: 类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对...
    99+
    2024-04-02
  • Java设计模式之接口隔离原则精解
    1.什么是接口隔离原则? 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口范围上。 2.对应代码 上面这张图呢,就违反了接口隔离原则。它对应的代码如下:...
    99+
    2024-04-02
  • Java设计模式七大原则之接口隔离原则详解
    目录定义案例需求方案一方案二对比分析总结小知识点相同点不同点定义 接口隔离原则(Interface Segregation Principle),又称为ISP原则,官方定义为 1.客...
    99+
    2024-04-02
  • C#面向对象设计原则之接口隔离原则
    接口隔离原则(ISP) 定义:使用多个专门的接口比使用单一的总接口要好。即不要把鸡蛋都放到一个篮子里。好处:比较灵活、方便,不想实现的或不用实现的可以不实现。解释说明:大部分人都喜欢...
    99+
    2024-04-02
  • 接口隔离原则_动力节点Java学院整理
    定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿...
    99+
    2023-05-31
    接口隔离原则 java ava
  • C#中怎么实现并使用接口隔离原则
    在C#中实现接口隔离原则,可以通过定义多个小而精简的接口,而不是一个大而臃肿的接口。这样可以让每个接口只包含一个特定功能或行为,使得...
    99+
    2024-04-03
    C#
  • Golang Facade模式与接口隔离原则的结合实践
    在Golang中实践Facade模式与接口隔离原则的结合可以通过以下步骤进行:1. 定义外观接口(Facade Interface)...
    99+
    2023-10-08
    Golang
  • C#面向对象编程中接口隔离原则的示例详解
    目录接口隔离原则C# 示例糟糕的示范正确的示范总结在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解、灵活和可维护。这些原则是由美国软件工程...
    99+
    2024-04-02
  • Java开闭原则实例分析
    这篇文章主要介绍“Java开闭原则实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java开闭原则实例分析”文章能帮助大家解决问题。定义开闭原则( Open Close Principle )...
    99+
    2023-06-29
  • python3--归一化设计,接口类和抽象类,接口隔离原则,多态
    抽象类与接口类继承有两种用途1 继承基类的方法,并且做出自己的改变或者扩展(代码重用)2 声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中...
    99+
    2023-01-30
    接口 原则 多态
  • Java的Synchronized原理与Callable接口实例分析
    这篇“Java的Synchronized原理与Callable接口实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Ja...
    99+
    2023-06-29
  • Mysql事务隔离级别原理的示例分析
    这篇文章主要介绍Mysql事务隔离级别原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!说说事务的隔离级别吧?老实说,事务隔离级别这个问题,无论是校招还是社招,面试官都爱问...
    99+
    2024-04-02
  • C#面向对象编程中的接口隔离原则是什么
    本篇内容介绍了“C#面向对象编程中的接口隔离原则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!接口隔离原则接口隔离原则(Interfa...
    99+
    2023-07-02
  • Java接口的本质实例分析
    本文小编为大家详细介绍“Java接口的本质实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java接口的本质实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。接口Java接口是一系列方法的声明,是一些...
    99+
    2023-06-29
  • Java的接口使用实例分析
    这篇文章主要介绍了Java的接口使用实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java的接口使用实例分析文章都会有所收获,下面我们一起来看看吧。接口一图流接口的概念以及一些知识点汇总接口(英文:In...
    99+
    2023-06-30
  • MySQL中隔离级别的示例分析
    这篇文章主要介绍MySQL中隔离级别的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL入门--事务隔离级别1) 隔离级别介绍如果一个客户机的事务更改了数据,其他客户机的事务是应发现这些更改还是应与其隔...
    99+
    2023-06-01
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作