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的创建.

  • 相关阅读:
    linux系统分区表修复
    centos 系统下彻底删除mysql
    mysql数据类型
    mysq 数据库基本管理
    centos 网卡聚合及Cisco交换机链路聚合
    Dell 服务器安装方法介绍
    linux分区之gpt(大于2T的分区)
    windows server 2008 远程桌面连接数修改--无限连接
    C# WinForm控件美化扩展系列之ListBox
    C# 文件 文件夹
  • 原文地址:https://www.cnblogs.com/trekxu/p/9090711.html
Copyright © 2011-2022 走看看