返回顶部
首页 > 资讯 > 精选 >java设计模式的依赖倒置原则怎么实现
  • 558
分享到

java设计模式的依赖倒置原则怎么实现

2023-06-17 10:06:19 558人浏览 独家记忆
摘要

这篇文章主要讲解了“java设计模式的依赖倒置原则怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java设计模式的依赖倒置原则怎么实现”吧!依赖倒置原则(Dependence Inv

这篇文章主要讲解了“java设计模式的依赖倒置原则怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java设计模式的依赖倒置原则怎么实现”吧!

依赖倒置原则(Dependence Inversion Principle),简称DIP

定义

High level modules should depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions.

高层模块不应该依赖低层模块,两者都应该依赖于抽象(抽象类或接口)

抽象(抽象类或接口)不应该依赖于细节(具体实现类)

细节(具体实现类)应该依赖抽象

抽象:即抽象类或接口,两者是不能够实例化的。

细节:即具体的实现类,实现接口或者继承抽象类所产生的类,两者可以通过关键字new直接被实例化。

而依赖倒置原则的本质骑士就是通过抽象(抽象类或接口)使各个类或模块的实现彼此独立,不相互影响,实现模块间的松耦合。但是这个原则也是6个设计原则中最难以实现的了,如果没有实现这个原则,那么也就意味着开闭原则(对扩展开发,对修改关闭)也无法实现。

依赖倒置有三种方式来实现

1、通过构造函数传递依赖对象

比如在构造函数中的需要传递的参数是抽象类或接口的方式实现。

2、通过setter方法传递依赖对象

即在我们设置的setXXX方法中的参数为抽象类或接口,来实现传递依赖对象

3、接口声明实现依赖对象

例如下面的例子

涂涂是个女僧

public class Tutu {      //涂涂是个女孩,会煮面      public void cook(Noodles noodles)      {          noodles.eat();      }  }

面条(目前只会煮面)

public class Noodles {      //吃面条      public void eat()      {          System.out.println("涂涂吃面条...");      }  }

涂涂坐在家里吃面(场景类)

public class Home {      public static void main(String args[])      {          Tutu tutu = new Tutu();          Noodles food = new Noodles();          tutu.cook(food);      }  }

运行结果:涂涂吃面条...

但是这有个问题,涂涂只会做面条,不可能每次都吃面条吧,天天吃面吃死你,所以在上面的Tutu类中的cook方法中,如果涂涂会做其他吃的,那岂不是更好。于是她向家庭主妇迈进了一步,使用了依赖倒置原则。

也就是涂涂通过学习还可以焖米饭,炒鱿鱼(虽然听着不爽,但是很好吃),京酱肉丝啊等等。要想在代码中实现,就需要实现两个接口:ITutu和IFood

public interface ITutu {      //这样就会做很多饭菜了      public void cook(IFood food);  }

实现类

public class Tutu implements ITutu {         @Override     public void cook(IFood food) {          food.eat();      }     }

食物接口

public interface IFood {      public void eat();  }

这样就为扩展留出了很大的空间,方面扩展其他的类。也不会对细节有变动。以后涂涂想吃什么学一下就可以自己做了

实现面条

public class Noodles implements IFood {         @Override     public void eat() {          System.out.println("涂涂吃面条...");      }     }

实现米饭

public class Rice implements IFood {         @Override     public void eat() {          System.out.println("涂涂吃米饭(终于吃上米饭了)...");      }  }

场景类:涂涂在家里开吃了,想吃什么直接做就是了

public class Home {      public static void main(String args[])      {          //接口使不能实例化滴          ITutu tutu = new Tutu();          //实例化米饭,涂涂可以吃米饭了          IFood rice = new Rice();          //吃面条          //IFood noodles = new Noodles();          tutu.cook(rice);      }  }

这样各个类或模块的实现彼此独立,不互相影响,实现了。

感谢各位的阅读,以上就是“java设计模式的依赖倒置原则怎么实现”的内容了,经过本文的学习后,相信大家对java设计模式的依赖倒置原则怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: java设计模式的依赖倒置原则怎么实现

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

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

猜你喜欢
  • java设计模式的依赖倒置原则怎么实现
    这篇文章主要讲解了“java设计模式的依赖倒置原则怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java设计模式的依赖倒置原则怎么实现”吧!依赖倒置原则(Dependence Inv...
    99+
    2023-06-17
  • Java设计模式七大原则之依赖倒置原则详解
    目录定义案例需求方案一方案二对比分析总结定义 依赖倒转原则,又称依赖倒置原则(Dependence Inversion Principle),又称DIP原则,即:上层模块不应该依赖底...
    99+
    2024-04-02
  • Java设计模式之依赖倒转原则精解
    目录1.什么是依赖倒转原则?2.代码案例3.依赖关系传递的三种方式和案例举例3.1 接口传递3.2 构造方法传递3.3 setter方法传递4.依赖倒转原则总结1.什么是依赖倒转原则...
    99+
    2024-04-02
  • C#实现六大设计原则之依赖倒置原则
    依赖倒置原则(DIP)定义: 高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来: 类A直接依赖类B,假如要将类A改为依赖类C,则必须...
    99+
    2024-04-02
  • java依赖倒转原则怎么实现
    本文小编为大家详细介绍“java依赖倒转原则怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“java依赖倒转原则怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.什么是依赖倒转原则?高层模块不应该...
    99+
    2023-06-29
  • java的依赖倒置原则你了解多少
    目录依赖倒置原则案例:背景:1.面向实现编程2.面向接口编程(简单版)总结依赖倒置原则 什么是依赖倒置原则: 高层模块不应该依赖低层模块,二者都应该依赖其抽象 抽象不应该依赖细节,细...
    99+
    2024-04-02
  • java面向对象设计原则之单一职责与依赖倒置原则详解
    目录单一职责概念 实现 拓展 依赖倒置原则概念 示例 拓展 单一职责概念 不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。交杂不清的职责将使...
    99+
    2024-04-02
  • java设计模式的单一职责原则怎么实现
    这篇“java设计模式的单一职责原则怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java设计模式的单一职责原则怎么...
    99+
    2023-06-17
  • java原型设计模式怎么实现
    在Java中,可以通过实现Cloneable接口和重写clone()方法来实现原型设计模式。1. 首先,在需要被复制的类中实现Clo...
    99+
    2023-10-18
    java
  • java设计模式理解依赖于抽象不依赖具体的分析
    在面向对象设计原则中,要求"要依赖于抽象,不要依赖于具体", 这句话有很多人搞不懂。在这里谈谈我自己的理解。首先看看以下代码 class A{ public void swim...
    99+
    2024-04-02
  • Java设计模式的里氏置换原则是什么
    这篇文章主要讲解了“Java设计模式的里氏置换原则是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java设计模式的里氏置换原则是什么”吧!里氏置换原则(Liskov Substitut...
    99+
    2023-06-17
  • java设计模式中常用的原则
    1)单一职责原则降低类的复杂度,一个类只负责一项职责,提高类的可读性,可维护性,降低类变更引起的风险,通常情况下,我们应当遵守单一职责原则,只有类逻辑足够简单,可以违反单一职责原则,若类的方法数量比较少,可以在方法级别保持单一原则。2)接口...
    99+
    2015-08-28
    java入门 java 设计模式 原则
  • Java设计模式的原则有哪些
    本文小编为大家详细介绍“Java设计模式的原则有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java设计模式的原则有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。设计模式的六大原则:1、单一职责原则,...
    99+
    2023-07-04
  • 解析Java实现设计模式六大原则之里氏替换原则
    目录一、什么是里氏替换原则1.1、里氏替换原则定义1.2、里氏替换原则有至少有两种含义二、使用里氏替换原则的目的三、里氏替换原则与继承多态之间的关系四、里式替换的规则4.1、子类方法...
    99+
    2024-04-02
  • Java设计模式六大原则是什么
    这篇文章主要讲解了“Java设计模式六大原则是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java设计模式六大原则是什么”吧!单一职责原则单一职责定义一个类只负责一个功能领域中的相应职...
    99+
    2023-06-02
  • JAVA初探设计模式的六大原则
    目录前言P1.单一职责原则(Single Responsibility Principle)P2.里氏替换原则(liskov substitution principle)P3.依赖...
    99+
    2024-04-02
  • Java中设计模式的原则有哪些
    本篇文章给大家分享的是有关Java中设计模式的原则有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java中的设计模式与7大原则:一、创建型模式抽象工厂模式(Abstrac...
    99+
    2023-05-31
    java 设计模式 ava
  • Java设计模式的工厂模式怎么实现
    本篇内容介绍了“Java设计模式的工厂模式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!工厂模式在Java应用程序中对象无处不在,这...
    99+
    2023-06-29
  • Java设计模式的桥接模式怎么实现
    这篇文章主要讲解了“Java设计模式的桥接模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java设计模式的桥接模式怎么实现”吧!什么是桥接模式桥接(Bridge)模式的定义如下:...
    99+
    2023-06-30
  • Java设计模式的代理模式怎么实现
    这篇文章主要介绍了Java设计模式的代理模式怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java设计模式的代理模式怎么实现文章都会有所收获,下面我们一起来看看吧。什么是代理模式代理模式的定义: 由于某...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作