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

  • 相关阅读:
    每日一题
    每日一题
    mysql 约束
    七种基础排序算法代码总汇
    netty之bytebuf粘包、分包
    Java nio 简易练手版 模拟用户群聊
    Java网络编程之终端聊天菜鸟版
    双重检测优化与加锁操作redis
    centos部署smb服务
    从事 iOS 研发6年的面经——送给准备跳槽的你!
  • 原文地址:https://www.cnblogs.com/trekxu/p/9090711.html
Copyright © 2011-2022 走看看