《程序员修炼之道》-读书笔记六-工厂模式下的伪DI依赖注入
时间:2019-09-22
本文章向大家介绍《程序员修炼之道》-读书笔记六-工厂模式下的伪DI依赖注入,主要包括《程序员修炼之道》-读书笔记六-工厂模式下的伪DI依赖注入使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
工厂类:
1 public class AgentFinderFactory { 2 3 private static AgentFinderFactory singleton; 4 5 private AgentFinderFactory() { 6 } 7 8 public static AgentFinderFactory getInstance() { 9 if (singleton == null) { 10 singleton = new AgentFinderFactory(); // 单例模式,保证此工厂类的唯一性 11 } 12 return singleton; 13 } 14 15 public AgentFinder getAgentFinder(String agentType) { // 根据类型,选择输出处理类 16 AgentFinder finder = null; 17 switch (agentType) { 18 case "spreadsheet": 19 finder = new SpreadsheetAgentFinder(); 20 break; 21 case "webservice": 22 finder = new WebServiceAgentFinder(); 23 break; 24 default: 25 finder = new WebServiceAgentFinder(); 26 break; 27 } 28 return finder; 29 } 30 }
业务类:
public class HollywoodServiceWithFactory { public static List<Agent> getFriendlyAgents(String agentFinderType) { AgentFinderFactory factory = AgentFinderFactory.getInstance(); // 获取工厂类,此时工厂类初步加载 AgentFinder finder = factory.getAgentFinder(agentFinderType); // 根据传入所有类型,获取所需操作对象 List<Agent> agents = finder.findAllAgents(); // 执行业务 List<Agent> friendlyAgents = filterAgents(agents, "Java Developers"); return friendlyAgents; } public static List<Agent> filterAgents(List<Agent> agents, String agentType) { // 此方法不必关心 .....
....
} }
原文地址:https://www.cnblogs.com/Deters/p/11568974.html
- 使用WiX制作简单MSI安装程序
- 企业应用通用架构图
- CacheManager:–个通用缓存接口抽象类库
- silverlight: http请求的GET及POST示例
- 如何判断AI创造物能够成为“作品”?附独家视频讲解
- 程序员最喜欢的五大神器
- UE4新手编程之创建C++项目
- 如何启动“Microsoft File Transfer Manager”
- 职责链(Chain of Responsibility)模式在航空货运中的运用实例
- 灵活的 overflow
- 制作WordPress侧边栏“热门文章”小工具并集成在主题中的方法
- 好用的WCF Visualizers
- java 邮件发送
- 制作WordPress侧边栏“随机文章”小工具并集成在主题中的方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- NFS挂载的2种方式
- Angular Component 开发时属性和运行时属性的对照
- 第002课 ubuntu环境搭建和ubuntu图形界面操作(免费)
- 爆破cobalt strike密码脚本
- 第003课 linux入门命令详解
- 第004课 vi编辑器的使用详解
- 【前端JQ】jQuery赋值checked的几种写法,attr()方法不好使,建议使用prop()方法。
- 达梦数据库适配问题
- Angular Component UI单元测试的隔离策略
- 第005课 linux进阶命令(文件查找,文件解压操作详解)
- 没有这 29 款插件的 Chrome 是没有灵魂的
- 第006课 开发板熟悉与体验
- Angular Observable数据类型的单元测试数据准备
- 第007课 裸机开发步骤和工具使用(SourceInght NotePad++使用)
- Angular jasmine.expect单步调试