Ioc的推荐实现方式
设计一个保存数据到软盘、USB设备的程序。
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-9-25
* Time: 11:13:32
*
*
*/
public class FloppyWriter {
public void saveToDevice() {
System.out.println("FloppyWriter.saveToDevice(): Floppy!");
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-9-25
* Time: 11:14:25
*
*
*/
public class BusinessObject {
private FloppyWriter floppyWriter;
public FloppyWriter getFloppyWriter() {
return floppyWriter;
}
public void setFloppyWriter(FloppyWriter floppyWriter) {
this.floppyWriter = floppyWriter;
}
public void save() {
System.out.println("----BusinessObjectsave()....");
floppyWriter.saveToDevice();
System.out.println("----BusinessObjectsave()....");
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-9-25
* Time: 1:15:17
*
*
*/
public class Client {
public static void main(String args[]){
//
BusinessObject businessObject=new BusinessObject();
FloppyWriter floppyWriter=new FloppyWriter();
businessObject.setFloppyWriter(floppyWriter);
//
businessObject.save();
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-9-25
* Time: 11:38:32
*
*/
public interface IDeviceWriter {
public void saveToDevice();
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-9-25
* Time: 11:44:46
* ,
*/
public class FloppyWriter implements IDeviceWriter{
public void saveToDevice() {
System.out.println("FloppyWriter.saveToDevice(): Floppy!");
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-9-25
* Time: 11:44:57
* ,USB
*/
public class USBWriter implements IDeviceWriter{
public void saveToDevice() {
System.out.println("USBWriter.saveToDevice(): USB!");
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-9-25
* Time: 11:40:24
*
*/
public class BusinessObject {
private IDeviceWriter writer;
public IDeviceWriter getWriter() {
return writer;
}
public void setWriter(IDeviceWriter writer) {
this.writer = writer;
}
/**
*
*/
public void save(){
System.out.println("----BusinessObjectsave()....");
writer.saveToDevice();
System.out.println("----BusinessObjectsave()....");
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-9-25
* Time: 11:51:09
*
*/
public class Client {
public static void main(String args[]){
//
IDeviceWriter floppyWriter=new FloppyWriter();
IDeviceWriter usbWriter=new USBWriter();
//
BusinessObject businessObject1=new BusinessObject();
BusinessObject businessObject2=new BusinessObject();
//
businessObject1.setWriter(floppyWriter);
businessObject1.save();
System.out.println();
//
businessObject2.setWriter(usbWriter);
businessObject2.save();
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-9-25
* Time: 11:32:03
*
*/
public class BusinessObject {
private IDeviceWriter writer;
public BusinessObject() {
}
public BusinessObject(IDeviceWriter writer) {
this.writer = writer;
}
public IDeviceWriter getWriter() {
return writer;
}
public void setWriter(IDeviceWriter writer) {
this.writer = writer;
}
/**
*
*/
public void save() {
System.out.println("----BusinessObjectsave()....");
writer.saveToDevice();
System.out.println("----BusinessObjectsave()....");
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-9-25
* Time: 11:35:52
*
*/
public class Client {
public static void main(String args[]){
//
IDeviceWriter floppyWriter=new FloppyWriter();
IDeviceWriter usbWriter=new USBWriter();
//
BusinessObject businessObject1=new BusinessObject(floppyWriter);
BusinessObject businessObject2=new BusinessObject(usbWriter);
//
businessObject1.save();
System.out.println();
businessObject2.save();
}
}
调用FloppyWriter.saveToDevice()方法: 保存到了Floppy设备上!
----结束调用业务组件BusinessObject的save()方法....
调用USBWriter.saveToDevice()方法: 保存到了USB设备上!
----结束调用业务组件BusinessObject的save()方法....
Ioc的推荐实现方式相关推荐
- Spring总结四:IOC和DI 注解方式
首先我们要了解注解和xml配置的区别: 作用一样,但是注解写在Bean的上方来代替我们之前在xml文件中所做的bean配置,也就是说我们使用了注解的方式,就不用再xml里面进行配置了,相对来说注解方式 ...
- 网易云音乐的推荐音乐方式与算法漫谈
网易云音乐的推荐音乐方式与算法漫谈 字数3131阅读8588评论13喜欢70 网易云音乐在我看来在各方面都是较为出色的音乐APP,网上也有各种体验报告.产品分析,但都比较偏向交互和前端.所以,我决定对 ...
- Spring IOC容器-注解的方式
注解方式可以简化spring的IOC容器的配置,但不利于后期维护,对象之间的依赖关系不能像xml文件一样方便查阅,一目了然. 注解可以和XML配置一起使用. 使用注解步骤: 1)先引入context名 ...
- Spring IoC和DI XML方式 注解方式 依赖注入 AOP面向切面
初识Spring框架 时代变迁 原始时代我们用一个jsp搞定一切,但如此开发大型项目时我们遇到了问题,前端美化的代码和后端的代码交织,代码中又有html.js.css样式,又有业务逻辑和数据库访问代码 ...
- Spring入门到精通:第二章 IOC容器(XML方式):1.IOC概念
百度百科表述: 控制反转(Inversion of Control,缩写为IOC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Dependenc ...
- Spring 框架 详解 (四)------IOC装配Bean(注解方式)
Spring的注解装配Bean Spring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean Spring的框架中提供了与@Component注解等效的三个注 ...
- Spring IOC容器-注解的方式【更简化】
----更加简化的版本 UserAction.java import javax.annotation.Resource;import org.springframework.stereotype.C ...
- Spring IoC注入三种方式
三种注入方式: setter & getter 注入 构造函数注入 p命名空间注入 有两个实体类 student: public class Student {String name;int ...
- Spring入门到精通:第二章 IOC容器(XML方式):2.IOC演变
前言 我们来看下IOC的演变历程,这里我们要明白设计的核心就是要降低耦合度. 假设我们有一个UserService和UserDao. 准备工作 创建UserDao: package com.kfit. ...
最新文章
- java使用ssh连接Linux并执行命令
- python基础——if语句/条件控制
- eclipse 快捷键大全
- python中的列表和元组_python中列表和元组的区别
- 用MySQL-zrm来备份和恢复MySQL数据库
- spring初始化在ServletContextListener实现类中获取spring注入对象
- spring+hibernate的clob大字段处理
- 解决iPhone、iPad 或 iPod touch 无法连接Wi-Fi网络问题
- TensorFlow by Google过拟合优化 Machine Learning Foundations: Ep #7 - Image augmentation and overfitting
- 有点累了?不如看看兵法三十六计。
- 一个特别NB的技术网站
- 转载-史密斯(smith)圆图讲解-基础内容
- .NET生成ICO图标
- 管理小故事100例3
- cdr2020永久序列号及试用过期解决
- 1.槑 2.囧 3.烎 4.兲 5.氼 6.砳 7.嘦 8.嫑 9.嘂 10.圐圙 11.玊 12.孖 13.砼 怎么读
- 网易微专业python爬虫工程师一期多久_有木有人上过网易云课堂的 Python Web 微专业,怎么样?...
- 安卓逆向010之实战破解内购(斗地主)
- 力扣解法汇总2013-检测正方形
- 不经一番寒彻骨,那有冰冻三尺,那有不经波折的人生?
热门文章
- pacemaker集群管理相关命令
- halfstone 原理_HashMap的结构以及核心源码分析
- python爬虫中for循环无法每一段输出_1024程序员节送你一套爬虫玩玩
- __getitem__的作用
- vim+python3的字符串却不能使用中文
- echart多个柱状图 设置y轴显示_Origin神教程:柱状图还是2D的吗?也没有误差棒?...
- Python环境下的数据库编程
- 中国移动研究院2020春招技术综合JAVA在线编程题第二题
- 2020 6-7月 每日花语
- Node搭建静态资源服务器时后缀名与响应头映射关系的Json文件