当前位置: 首页 > news >正文

Java设计模式——工厂模式扩展

5.5 工厂模式扩展

简单工厂+配置文件解除耦合

(spring底层类似)

可以通过工厂模式+配置文件的方式解除工厂对象和产品对象的耦合。在工厂类中加载配置文件中的全类名,并通过反射技术创建对象进行存储,客户端如果需要对象,直接进行获取即可。

为了演示方便,我们使用properties文件作为配置文件,名称为bean.properties,配置文件内容如下:

american=factory.config_factory.AmericanCoffee
latte=factory.config_factory.LatteCoffee#如果冰咖啡饮品,直接添加全类名即可,咖啡工厂中代码不用修改
icecoffee =factory.config_factory.IceCoffee
//咖啡工厂
public class CoffeeFactory {//加载配置文件,获取配置文件中配置的全类名,并创建全类名的类的对象进行存储// 1.定义容器存储咖啡对象private static Map<String,Coffee> map = new HashMap();// 2.静态代码块 加载配置文件,只需加载一次static {// 2.1创建Properties对象Properties p = new Properties();// 2.2调用p对象中的load方法进行配置文件的加载InputStream is = CoffeeFactory.class.getClassLoader().getResourceAsStream("bean.properties");try {p.load(is);//从p集合中获取全名并创建对象//遍历Properties集合对象Set<Object> keys = p.keySet();for (Object key : keys) {//根据键获取值(全类名)String className = p.getProperty

http://www.mrgr.cn/news/34551.html

相关文章:

  • Vue3(二)计算属性Computed,监视属性watch,watchEffect,标签的ref属性,propos属性,生命周期,自定义hook
  • gtk安装和测试
  • 半导体芯闻--20240923
  • Vue使用Vue Router路由:通过URL传递与获取参数
  • excel怎么转换json
  • Java刷题知识总结(一)
  • mapty项目架构
  • 【链表操作】前驱和后继
  • 个人防护装备检测系统源码分享
  • 全栈开发(一):springBoot3+mysql初始化
  • LPDDR4芯片学习(一)——基础知识与引脚定义
  • 初始docker以及docker的基本使用!!!
  • 苍穹外卖上半部分总结
  • 【灭鼠先锋 / B】
  • 《CUDA编程》1.GPU硬件与CUDA环境搭建
  • 某恩加密数据爬虫逆向分析
  • P4630 [APIO2018] 铁人两项(圆方树模版)
  • 基于SpringBoot+Vue+MySQL的旅游推荐管理系统
  • 24. Revit API: 几何对象(五)- (Sur)Face
  • QT中添加资源文件