工厂模式:工厂模式是利用工厂类的工厂方法创建对象的一种设计模式,目的是创建对象,但是很多时候创建对象我们会考虑很多其他因素~~~~比如限定输入,限定返回值是否某个,比如在创建的过程中进行一些判断,通过不同的工厂模式就能把这些东西分离开来。
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"; }
以上是一个静态工厂的创建类的过程,创建类的所有过程都被隐藏
时间: 2024-11-08 01:35:11