• spring 利用工厂模式解耦


    前期工作

      我们建立三层架构:表现层,业务层和持久层

       持久层通过dao接口完成对数据库的交互

       通过实现类完成功能的实现

      业务层通过service接口完成业务需求

       业务层实现类

      表现层调用service接口

       我们可以看到业务层对持久层,表现层对业务层有着依赖

    利用工厂模式解耦

      我们创建一个Bean工厂,Bean在计算机英语里有可重用组件的意思,bean工厂就是创建dao和service对象的工厂

       配置文件可以是xml,也可以是properties,这里我们采用properties,我们在resources里创建properties配置

       然后我们在bean工厂里面初始化properties,这里我们使用静态代码块

       需要注意的是InputSteam的实例化不能用new关键字,因为web服务上线后就没有src文件夹了,也不能用绝对路径,因为每台机子都不一样。这里采用的是利用bean工厂的类加载器的getResourceAsStream方法获取流对象,里面的路径是从classpath开始的。

       然后我们来写getBean方法,该方法可以通过bean的名称获取bean对象,这里根据beanName和properties的key-value配置获取beanPath也就是全限定类名,再通过class.forName反射的机制获取bean对象。

       建立好工厂之后,我们就可以利用工厂解耦,我们来看表现层对accountService的依赖,我们就可以利用工厂生产IAccountServiceImpl类的实现类AccountServiceImpl

       同样的,业务层对持久层的依赖也可以通过工厂模式解耦

       我们运行一下,奈斯~

       

     

  • 相关阅读:
    LabVIEW入门第三天(软件及驱动包下载)
    poj1732
    poj1722
    poj1821
    poj1770
    poj1949
    poj1726
    poj1699
    poj1682
    poj1853
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/13683455.html
Copyright © 2020-2023  润新知