Spring中的工厂模式

工厂模式是一种在工程中广泛应用的设计模式,对代码的解耦合起到了很大的作用

工厂模式提供了一种绝佳的创建对象的方法。在工厂模式中,我们并不会直接使用new来创建一个对象,而是使用一个共同的接口类来指定其实现类,这就大大降低了系统的耦合性——我们无需改变每个调用此接口的类,而直接改变实现此接口的类即可完成软件的更新迭代

工厂模式的代码

import java.util.ResourceBundle;

/**
 * 使用此工厂类创建bean实例
 */
public class BeanFactory {
    //加载配置文件
    private static ResourceBundle bundle;
    static {
        bundle = ResourceBundle.getBundle("instance");
    }

    //根据指定的key,读取配置文件的全路径,创建对象
    public static <T>T getInstance(String key,Class<T> clazz){
        String className = bundle.getString(key);

        try {
            return (T)Class.forName(className).newInstance();
        }catch (Exception e){
            throw new RuntimeException();
        }
    }
}

Class.forName(className).newInstance()方法就会返回className对应的类,这样就能够使用了。

工厂模式的思想正好契合SpringIOC的设计思想:某一接口的具体实现类的选择控制权从调用类中移除,转而交给第三方决定,即借由Spring的Bean配置来实现控制,这同样也是工厂模式的思想。 在Spring中有两个最基本的工厂,BeanFactory和ApplicationContext。BeanFactory是Spring框架的基础设施,面向的是Spring本身,也就是用于创建Spring扩展的其他内容,如Spring Security、Spring JDBC等,而ApplicationContext这个工厂是面向开发者的,也就是应用上下文——配置文件等,开发者能够使用这个工厂实现自己的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值