- 📕系列专栏:本文写在Java设计模式专栏:不就是Java设计模式吗
- 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
- 🌻格言:向日葵向阳生长,我也是✨
文章目录
-
前言
-
一、依赖倒转原则
-
- 基本原则
-
设计理念
-
代码对比
-
二、依赖关系传递
-
- 方式一:接口传递
-
- 代码实现:
-
方式二:构造方法传递
-
- 代码实现
-
方式三:setter方式传递
-
- 代码实现:
-
总结
=====================================================================
今天学习了java设置模式中七大原则之一的依赖倒转原则,其中依赖关系传递的三种方式认真研究一下,还是很有意思的。总结了自己的笔记,希望大家喜欢✔
===========================================================================
-
高层模块不应该依赖底层模块,二者都应该依赖其抽象
-
抽象不应该依赖细节,细节应该依赖抽象
-
依赖倒转的中心思想是面向接口编程
-
相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在java中,抽象指的是接口或抽象类,细节就是具体的实现类
-
使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成
代码一:
public class A {
public static void main(String[] args) {
Person person = new Person();
person.receive(new Email());
}
}
class Email{
public String getInfo(){
return “电子邮箱:我是一棵卷心菜”;
}
}
class Person {
public void receive(Email email){
System.out.println(email.getInfo());
}
}
代码一比较简单,容易想到。但是如果我们获取的对象是其它的,比如QQ,就需要在
Person
类中增加相应的接收方法,接下来看看代码二是如何解决这样的问题
代码二:
public class B {
public static void main(String[] args) {
Man man = new Man();
man.receive(new QQ());
}
}
interface Receiver{
String info();
}
class QQ implements Receiver{
public String info() {
return “用QQ接收信息”;
}
}
class WeChat implements Receiver{
public String info() {
return “用WeChat接收信息”;
}
}
class Man{
public void receive(Receiver receiver){
System.out.println(receiver.info());
}
}
代码二引入一个抽象的接口
Receiver
,这样Man
类与接口发生了依赖
===========================================================================
代码实现:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
给大家送一个小福利
附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
中…(img-7Y1V1Fl0-1712703919791)]
附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。
[外链图片转存中…(img-UMoQoih6-1712703919792)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!