第一步:定义一个接口
//定义一个接口,定义规范
public interface USB {
public void input();
public void output();
}
第二步:新建一个.properties文件
第三步:新建一个工厂类
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class FactroyClass {
//创建Properties对象
static Properties pro = new Properties();
//使用静态代码块加载properties文件
static {
InputStream resource = FactroyClass.class.getResourceAsStream("usb" +
".properties");
try {
pro.load(resource);
} catch (IOException e) {
e.printStackTrace();
}
}
//一个返回所需实例的静态方法,参数为properties的key
public static USB getInstance(String key) throws Exception {
//获取类的全限定名
String className = pro.getProperty(key);
if (className == null){
return null;
}
//利用反射机制生成实例并返回
return (USB) Class.forName(className).newInstance();
}
}
第四步:编写需要的类,实现接口,如:
public class Mouse implements USB{
@Override
public void input() {
System.out.println("鼠标插入!");
}
@Override
public void output() {
System.out.println("鼠标已拔出!");
}
}
第五步:将类的全限定名写入.properties文件
mouse=reflect.factroy.Mouse
keybord=reflect.factroy.Keybord
之后调用getInstance(String key)便可以获取对应的实例。