一、前言
在学习spring时,先学习了利用工厂模式来降低耦合度,故在此记录一下!
假设有一个项目时和账户有关,其项目结构如下:
二、传统的三层架构之间的关系
在以前使用三层结构实现web项目时,三层之间的依赖关系如下:
在client中直接创建service对象,然后在service中之间创建dao对象,如下:
1 | IAccountService accountService = new AccountServiceImpl(); |
1 | private IAccountDao accountDao = new AccountDaoImpl(); |
但其实这样做的后果就是耦合度非常高,如果其中一个类有问题,那么就会连编译也通不过!!!
三、使用工厂模式后三层架构之间的关系
那么在这种情况下,如何降低其耦合度呢???
其实,我们可以使用工厂模式来降低其耦合度
(一)大致思想:
创建一个工厂类,并且需要的对象都必须通过该类获取
(二)步骤:
1、将所有需要创建对象的类的信息都使用配置文件进行保存
2、创建工厂类,并且该类通过加载配置文件中的类的信息后,利用反射创建对象
3、将所有创建好的对象保存在一个map中,用来实现单例
4、利用一个获取对象的方法即可
(三)实现
1、配置文件
bean.properties文件内容如下:
1 | accountDao=com.zuobiao.dao.impl.AccountDaoImpl |
2、工厂类
1 | public class BeanFactory { |
3、通过工厂类获取对象
1 | IAccountService accountService = (IAccountService) BeanFactory.getBean("accountService"); |
1 | private IAccountDao accountDao = (AccountDaoImpl) BeanFactory.getBean("accountDao"); |
四、总结
通过该方法就可以将耦合度从编译期降低到运行期,并且spring也是采用的方法,因此在我们的实际开发中也应尽量使用该方法.
Java新手,若有错误,欢迎指正!