zoukankan      html  css  js  c++  java
  • 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

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

       我们运行一下,奈斯~

       

     

  • 相关阅读:
    SQLSERVER2000使用TSQL将数据导入ACCESS并压缩生成rar
    收回动态VHD的未使用空间
    如何在html中添加引用公共模块文件 bling
    C语言I博客作业02
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
    Kali 安装JAVA(来源:oschina)
    DHCP服务器内网攻击测试
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/13683455.html
Copyright © 2011-2022 走看看