• 005 IOC--使用工厂方法创建Bean


    一 . 概述

      在前面,我们对IOC容器有了一定的认识,我们知道IOC容器的一个核心的任务就是创建Bean.

      之前,我们还说到Bean的创建唯一方式就是通过构造函数.但是在此还有一个特殊的情况,就是工厂.


    二 .工厂模式

      在设计模式之中,工厂方法的核心就是创建对象,因此很多API都是遵守这个规则,将Bean创建的细节封装起来,

        然后提供了一个工厂专门来创建Bean.

    一般情况下,传统的工厂分成静态工厂和动态工厂(现在我们不需要再自己编写这样的工厂类了).


    三. 使用静态工厂创建Bean

    public class Factory {
        
        public static Date getDate() {
            return new Date();
        }
    }

    我们创建了一个静态工厂,调用getDate()方法就创建了一个Date对象.

    <bean id="date" class="com.trek.factory.Factory" factory-method="getDate"></bean>

    我们将静态工厂的信息配置在配置文件之中.

      测试代码 :  

        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
            Date date = (Date) context.getBean("date");
            System.out.println(date);

    现在我们一样可以在IOC容器之中获取Bean.


    四 .使用动态工厂创建Bean

    public class Factory {
        
        public  Date getDate() {
            return new Date();
        }
    }

    我们创建了一个动态工厂,现在我们无法使用类名去创建一个对象方法了.

        <bean id="factory" class="com.trek.factory.Factory"></bean>
        
        <bean id="date"  factory-bean="factory" factory-method="getDate"></bean>

    其实和之前一样,我们创建了一个工厂Bean,然后通过这个工厂Bean来完成Bean的创建.

  • 相关阅读:
    矩阵
    手机APP和WAP版的区别
    学习的方法
    ASP.Net中jQuery控制div弹出框效果
    SQL SERVER字符串前加N转换为Unicode编码
    塞尔维亚国家简称编码
    VS2019项目模板中没有[ASP.NET空网站]的解决方案
    Scopus论文数据爬虫
    采集科研文献和数据,我告诉你一个能自动采集的黑科技
    CiteSpace入门教程
  • 原文地址:https://www.cnblogs.com/trekxu/p/9090711.html
Copyright © 2020-2023  润新知