zoukankan      html  css  js  c++  java
  • 工厂模式

    1.什么时候使用工厂模式:

    核心:工厂模式的核心思想就是实例化对象.

    说明:某个写对象可能需要特定的参数,可能是抽象类,也可能是接口等等.不能直接实例化的,需要采用工厂模式.

    2.静态工厂

    核心:通过类名.静态方法的方式创建对象

    (1)工厂代码:

    public class StaticFactory {
        
        //静态工厂必须有静态方法
        public static Calendar getIn(){
            
            return Calendar.getInstance();
        }
    }

    (2)工厂配置文件

        <!--配置静态工厂  -->
        <bean id="calendar1" class="com.jt.manage.factory.StaticFactory" factory-method="getIn"/>

    3.实例化工厂

    核心:先实例化工厂对象,之后利用工厂对象.工厂方法实例化对象

    (1)代码:

    public class InsFactory {
        
        public Calendar getIns(){
            
            return Calendar.getInstance();
        }
    }

    (2)配置文件

    <!--实例化工厂  -->
        <bean id="insFactory" class="com.jt.manage.factory.InsFactory"/>
        <bean id="calendar2" factory-bean="insFactory" factory-method="getIns"/>

    4.Spring工厂

     (1)

    public class SpringFactory implements FactoryBean<Calendar>{
        
        //当程序加载该类时,容器内部会自动的调用getObject方法
        @Override
        public Calendar getObject() throws Exception {
            
            return Calendar.getInstance();
        }
    
        @Override
        public Class<?> getObjectType() {
            // TODO Auto-generated method stub
            return Calendar.class;
        }
    
        @Override
        public boolean isSingleton() {
            // TODO Auto-generated method stub
            return false;
        }
    
    }

    (2)配置文件

    <bean id="calendar3" class="com.jt.manage.factory.SpringFactory"/>
  • 相关阅读:
    Codevs 2597 团伙(并查集)
    Codevs 1074 食物链 2001年NOI全国竞赛
    Bzoj 3831 [Poi2014]Little Bird
    Codevs 4600 [NOI2015]程序自动分析
    Codevs 3287 货车运输 2013年NOIP全国联赛提高组(带权LCA+并查集+最大生成树)
    段落排版--中文字间距、字母间距
    段落排版--行间距(行高)
    段落排版--缩进
    文字排版--删除线
    文字排版--下划线
  • 原文地址:https://www.cnblogs.com/gxlaqj/p/11595664.html
Copyright © 2011-2022 走看看