工厂模式(think in java中的设计模式)

Posted 酒皇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂模式(think in java中的设计模式)相关的知识,希望对你有一定的参考价值。

工厂模式:工厂模式是利用工厂类的工厂方法创建对象的一种设计模式,目的是创建对象,但是很多时候创建对象我们会考虑很多其他因素~~~~比如限定输入,限定返回值是否某个,比如在创建的过程中进行一些判断,通过不同的工厂模式就能把这些东西分离开来。

package com.dhh.test;

import org.junit.Test;

public class Test2 {
    @Test
    public void t() throws InstantiationException, IllegalAccessException, ClassNotFoundException{

        //A类实现了C接口可以返回
        A a=(A) Factory.builder("A");
        System.out.println(a.name);
        //B也实现了C接口可以返回,但是我试过如果B去除了C接口则不可以返回从而限制了创建类的类型
        B b=(B) Factory.builder("B");
        System.out.println(b.name);
        
    }
}
class Factory{
    //C作为接口居然可以是返回值
    static public  C  builder(String typeName ) 
            throws InstantiationException, IllegalAccessException, ClassNotFoundException{
        //反射创建类
        //直接传入A,B类型名,工厂内部拼接权限定名可以限制创建类的包
        Object o=Class.forName("com.dhh.test."+typeName).newInstance();
        //居然可以强转C接口
        return (C) o;
    }
}
interface C{
    
}
class A implements C{
    String name="168";
}

class B implements C{
    String name="178";
}

以上是一个静态工厂的创建类的过程,创建类的所有过程都被隐藏

以上是关于工厂模式(think in java中的设计模式)的主要内容,如果未能解决你的问题,请参考以下文章

状态模式(think in java中的设计模式)

模板方法模式(think in java中的设计模式)

迭代器模式(think in java中的设计模式)

Think In OO

Think In OO

Thinking in java Chapter19 枚举类型