ioc spring技术手册学习
BOB大叔书中依赖倒置原则:
1.高层模块不应该依赖低层模块,二者都应该依赖于抽象。
2.抽象不应该依赖于细节,细节应该依赖于抽象。
之所以称之为‘依赖倒置’是相对传统的过程式编程而言,依赖关系结构被倒置了。
public class Business{
private FloppyWriter writer = new FloppyWrite();
...
public void save{
...
Writer.save();
}
}
此时Business类就依赖于具体的低层模块FloppyWriter ,如果要改变存储介质为usb则必须修改Business。
介于“高层模块不应该依赖低层模块”,程序修改如下:
public interface DeviceWriter{
void save()
}
class UsbDeviceWrite implements DeviceWriter{
void save(){
...
//save to usb device;
}
}
class FloppyDiskWrite implements DeviceWriter{
void save(){
...
//save to floppy disk device;
}
}
public class Business{
private DeviceWriter writer = new FloppyWrite();
public void setDeviceWriter(DeviceWriter dw){
this.writer = dw;
}
...
public void save{
...
writer.save();
}
}
可以看到无论低层的存储如何变化,Business都不要修改。此时就是Business(高层模块)和UsbDeviceWrite 、FloppyDiskWrite(低层模块) 依赖于抽象(DeviceWriter接口)。您也可以编写一个配置管理程序,由xml或.property文件来更改配置,连setDeviceWriter方法都不要写。事实上spring核心容器就提供了这样的配置管理的功能。
ioc spring技术手册学习相关推荐
- JXTA技术手册学习--------(1)通告
通告是JXTA的核心,只有通过寻找通告才能发现JXTA的对等体及其资源,而且只有通过发布通告才能向外界提供自己的服务. 通告由抽象类Advertisement(net.jxta.document.Ad ...
- 社群:加入 Spring 技术学习群
入群须知 为了构建高质量的技术交流社群 减少低质量内容的产出,建议入群前先阅读本须知 了解本社群所涉及的内容主题与相关群规 社群主题:Spring技术 适合人群: 已经具备Java基础能力(若还没有J ...
- Spring 2.0技术手册 下载
Spring 2.0技术手册 作者:林信良 http://dl2.csdn.net/fd.php?i=56063267108000&s=bf67e9e68510f2fa4d9f726495d9 ...
- Spring Security技术栈学习笔记(十三)Spring Social集成第三方登录验证开发流程介绍
开发第三方登录,我们必须首先要了解OAuth协议(本文所讲述的OAuth协议指的是OAuth2协议),本文首先简单介绍OAuth协议,然后基于Spring Social来阐述开发第三方登录需要做哪些准 ...
- Spring Security技术栈学习笔记(十四)使用Spring Social集成QQ登录验证方式
上一篇文章<Spring Security技术栈开发企业级认证与授权(十三)Spring Social集成第三方登录验证开发流程介绍>主要是介绍了OAuth2协议的基本内容以及Spring ...
- Spring Security技术栈学习笔记(八)Spring Security的基本运行原理与个性化登录实现
正如你可能知道的两个应用程序的两个主要区域是"认证"和"授权"(或者访问控制).这两个主要区域是Spring Security的两个目标."认证&qu ...
- 2022分享三面阿里:Java 面试核心手册 +Java 电子书 + 技术笔记 + 学习视频
写在片头:声明,勿杠 首先简单说一下,这三次面试阿里并不是一次性去面的,实际上第一次面试时候还在大四,找的实习岗,不太清楚是什么部门,别问我为什么还记得面试题,有记录和复盘的习惯,再问就是杠. 个人背 ...
- 《撸代码 学习 IOC注入技术1 》—— 布局注入 与 控件注入
不诗意的女程序媛不是好厨师~ 转载请注明出处,From李诗雨-https://blog.csdn.net/cjm2484836553/article/details/104539874 [源代码下载地 ...
- 《撸代码学习 IOC注入技术2》—— 事件注入
不诗意的女程序媛不是好厨师~ 转载请注明出处,From李诗雨-https://blog.csdn.net/cjm2484836553/article/details/104581855 源代码下载地址 ...
最新文章
- python要在哪里写代码-如何更优雅地写python代码
- boost::log模块实现多线程异步日志记录示例
- Mysql的垂直分表-新建
- plist 文件的读写
- C#委托之就是跟委托过不去…
- vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值?
- java android aes加密解密_AES加密解密在JAVA和ANDROID下互通
- Python Flask Web 第十一课 —— 使用 Flask-SQLAlchemy 管理数据库
- C# 中的 ConfigurationManager类引用方法应用程序配置文件App.config的写法
- SpringMVC读取资源文件的几种方式
- Wannafly 每日一题 2016-12-26 KAOS 字典树
- 鲜花销售管理系统jsp全部代码_基于Java的鲜花销售管理系统设计与实现.zip
- 5G+北斗RTK定位:高精度定位技术发展更进一步
- 金士顿100 G3U盘写保护无法格式化的解决方法记录
- 二叉树期CRR权定价模型-python
- 如何重命名c盘中users文件夹下的文件名
- 有关微型计算机控制系统的论文,计算机控制系统 徐文尚
- SQL server身份验证
- mysql 切换主键
- python批量添加qq好友_Python QQ批量登录
热门文章
- Perforce的环境变量配置
- npm命令运行时报错_运行npm update等命令出错后如何分析问题根源(示例代码)
- php 二维数组根据键值合并二维数组_php数组实现根据某个键值将相同键值合并生成新二维数组的方法详解...
- java代码操作注册表,java操作注册表范例代码
- 火狐浏览器的导出和导入
- 高速信号传输约翰逊 pdf_智芯文库 | 高速数字电路的设计与仿真
- 怎样使用计算机上的高级共享设置,win7打印机共享怎么设置
- java telnet 交换机_华为交换机 telnet 配置(极简版)
- 软件开发工程师应该具备哪些证书_智能展厅设计应该具备哪些特点?
- 经纬度,墨卡托等坐标转换