码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-06-23 13:09:55      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:port   不同的   拼接   size   工厂模式   class   one   int   nts   

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

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中的设计模式)

标签:port   不同的   拼接   size   工厂模式   class   one   int   nts   

原文地址:http://www.cnblogs.com/blackdeng/p/7069207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!