首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常用开源框架中设计模式使用分析-工厂模式(Factory Pattern)

常用开源框架中设计模式使用分析-工厂模式(Factory Pattern)

作者头像
加多
发布2018-09-06 14:45:02
9550
发布2018-09-06 14:45:02
举报

三、工厂模式(Factory Pattern)

3.1 介绍

工厂模式是创建型模式,他封装了对象的创建过程,调用者使用具体的工厂方法根据参数就可以获取对应的对象。

3.2 Spring框架中BeanFactory

image.png

如图BeanFactory接口提供了getBean方法,在AbstractBeanFactory中实现了该方法,经过层层继承,实现,最后DefaultListableBeanFactory实现了BeanDefinitionRegistry接口用来保存bean定义,继承了AbstractAutowireCapableBeanFactory用来支撑autowired。

一个例子

@Test
public void testBeanFactoy() throws NamingException, SQLException, ParseException, IOException {

    //创建Bean工厂
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();

    //给bean工厂添加bean定义,解析xml里面的bean放入bean工厂
    loadBeanDefinitions(bf);

    //根据名字从bean工厂获取bean
    Hello hello = (Hello) bf.getBean("hello");
    hello.sayHello();
    
    Hello2 hello2 = (Hello2) bf.getBean("hello2");
    hello2.sayHello();
    

}

protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) throws IOException {
    XmlBeanDefinitionReader beanDefinitionReader = new XmlBeanDefinitionReader(beanFactory);

    String[] configLocations = new String[] { "beans2.xml" };
    if (configLocations != null) {
        beanDefinitionReader.loadBeanDefinitions(configLocations);
    }
}

3.3 使用场景

  • 不同条件下创建不同实例,用于统一管理bean
  • 不同条件下调用不同工厂方法获取不同场景下的bean
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三、工厂模式(Factory Pattern)
    • 3.1 介绍
      • 3.2 Spring框架中BeanFactory
        • 3.3 使用场景
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档