程序解耦

解耦

一、

  • 在实际开发中做到编译期不依赖,运行期依赖
    示例:
    在使用jdbc连接数据库时,注册驱动步骤代码:
    DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    
    此时如果没有相应的jar包,在运行程序时会出现编译错误,若将其改为
    Class.forName("com.mysql.jdbc.Driver");
    
    此时如果没有相应的jar包,运行程序时会出现运行错误而不是编译错误。
    • 解耦思路
      1.通过反射来创建对象,避免使用new关键字
      2.通过读取配置文件来获取要创建的对象全限定类名

二、创建Bean对象的工厂

Bean:有可重用组件的含义(例如多次调用的service层和Dao层),JavaBean并不单单指实体类。

  • 使用工厂来创建service和Dao对象:
    1.使用配置文件来配置service和Dao,配置内容为唯一标识=全限定类名(即key value的形式)
    2.通过读取配置文件中配置内容,利用反射来创建对象。
    文件目录结构
    BeanFactory类代码:
    在这里插入图片描述
    在这里插入图片描述
    配置文件代码:
    在这里插入图片描述
    使用工厂来创建对象:
    service层中调用Dao层方法时创建对象方法同理在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值