工厂设计模式介绍:
工厂设计模式就是用于产生对象的。
看下方简单案例:
工厂设计模式就是用于产生对象的。
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 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;
}
}