JAVA使用反射代替switch大量分支

今天看了《大话设计模式》中的抽象工厂模式,其中提出了使用反射技术,原文不是用的Java,所以尝试用Java来实现一下。

具体的一些知识:https://www.cnblogs.com/zhaoguhong/p/6937364.html 写得不错。

我这里是用了三个函数来通过全限定名(字符串变量)来构造一个类。

package AbsractFactory;

import java.lang.reflect.Constructor;

public class DataAccess {
	//这是需要构造的类的字符串(SqlServerUser实现了IUser接口)
    private static String db = "AbsractFactory.SqlServerUser";

    public static IUser CreateUser() throws Exception{
    	//得到类
        Class userClass = Class.forName(db);
        //得到类的构造函数
        Constructor<?> constructor = userClass.getConstructor();
        //使用构造函数得到类的实例
        return  (IUser)constructor.newInstance();
    }
}

你可能感兴趣的:(Java知识点)