工厂设计模式介绍:
工厂设计模式就是用于产生对象的。
看下方简单案例:
工厂设计模式就是用于产生对象的。
class Car{}
class BMW extends Car{}
class BSJ extends Car{}
public class Demo1 {
public static void main(String[] args) {
}
public static Car getInstance(int num){
if(num==0){
return new BMW();
}else{
return new BSJ();
}
}
}
需求:编写一个工厂方法根据配置文件返回对应的对象
public class Demo1 {
public static void main(String[] args) throws Exception {
Person p = (Person) getInstance();
System.out.println(p);
}
//需求: 编写一个工厂方法根据配置文件返回对应的对象。
public static Object getInstance() throws Exception{
//读取配置文件
BufferedReader bufferedReader = new BufferedReader(new FileReader("info.txt"));
//读取第一行 : 读取类文件的信息
String className = bufferedReader.readLine();
//通过完整类名获取对应 的Class对象
Class clazz = Class.forName(className);
//获取到对应的构造方法
Constructor constructor = clazz.getDeclaredConstructor(null);
constructor.setAccessible(true);
Object o = constructor.newInstance(null);
//给对象设置对应的属性值
String line = null;
while((line = bufferedReader.readLine())!=null){
String[] datas = line.split("=");
Field field =clazz.getDeclaredField(datas[0]);
//设置可以访问
field.setAccessible(true);
if(field.getType()==int.class){
field.set(o, Integer.parseInt(datas[1]));
}else{
field.set(o, datas[1]);
}
}
return o;
}
}
版权声明:本文为prince77qiqiqq原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。