各种工厂模式

由于反射无法反射抽象类和接口;所以在这个时候使用工厂模式

静态的补充: 静态的方法可以通过类名 . 方法可以进行直接调用

抽象工厂

创建一个普通类, 在类里创建一个 静态的方法  ,

package com.jt.factory;

import java.util.Calendar;

public class StaticFactory {

    /*通过静态工厂获取数据*/
    public static Calendar getCalendar(){
       /*
           Calendar calendar = Calendar.getInstance();
           return calendar;
       */
       return Calendar.getInstance();
    }
}

然后在application.xml中使用bean标签;

factory-method 的值是静态方法名

程序执行的原理  : 首先在测试类中创建容器(启动容器) ;然后会加载application.xml的文件;

然后在执行该文件的bean 在找到里面的class  ;因为此时是静态(static) ; 再根据类名.方法 ; 找到里面的方法 

factory-method 去找到那个方法  然后在进行保存

实例化工厂

创建一个普通类, 在类里创建一个有返回值 的方法  ,

package com.jt.factory;

import java.util.Calendar;

public class InstanceFactory {

    //获取Calendar对象
    public Calendar getCalendar(){

        return Calendar.getInstance();
    }
}

然后在application.xml中使用bean标签;

在此时先将对象交给spring工厂管理  然后在通过对象调用方法

程序执行的原理  : 首先在测试类中创建容器(启动容器) ;然后会加载application.xml的文件 ;

  <!--2.实例化工厂   步骤1:将工厂交给spring容器管理   步骤2: 通过对象调用方法
      对象.方法()
   -->
   <bean id="instanceFactory" class="com.jt.factory.InstanceFactory"></bean>
   <bean id="calendar2" factory-bean="instanceFactory" factory-method="getCalendar"></bean>

然后,在将对象交给容器管理 ,在进行保存; 在通过调用容器里的对象进行引用,在调用里面的 方法;然后,将结果再进行保存;

spring工厂

代替了静态工厂和实例化工厂

在一些复杂的对象(容器)不能够直接实例化的对象首选spring工厂;

创建一个普通类, 这个类并实现FactoryBean

在application文件中配置文件; 此时的id的值为实例化后的对象的名字

实现spring容器的接口的过程

钩子函数 : 就是在实现接口的时候, 那么该接口在去调用该接口里面的方法,方法执行完之后 ;如果有其他接口,那么在回去调用其他接口里面的方法 ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值