properties的工厂模式
Properties 类表示了一个持久的属性集。
Properties 可保存在流中或从流中加载。
package com.lingzhuo;
public interface Myperson {
public void sleep();
}
package com.lingzhuo;
public class Mystudent implements Myperson{
@Override
public void sleep() {
System.out.println("学生在睡觉");
}
}
package com.lingzhuo;
public class Myteacher implements Myperson{
@Override
public void sleep() {
System.out.println("老师在睡觉");
}
}
添加文件
文件名: config.properties
文件内容:clazz=com.lingzhuo.Mystudent
package com.lingzhuo;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class Myfactory {
public static Myperson show(){
Myperson person=null;
Properties p=new Properties();
try {
p.load(new FileInputStream("config.properties"));
String clazzName=p.getProperty("Myperson");
Class clazz=Class.forName(clazzName);
person=(Myperson)clazz.newInstance();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return person;
}
}
package com.lingzhuo;
public class Test2 {
public static void main(String[] args) {
Myperson person=Myfactory.show();
person.sleep();
}
}