刚看完的视频,总结下。
实例是马士兵的观察者模式
class.properties:
class=com.blank.test.Dad,com.blank.test.GrandFather
这是文件内容。
放到了com.blank.test这个包下。
接下来是程序运行动态读取:
Properties p = new Properties();
try {
p.load(Test.class.getClassLoader().getResourceAsStream(
"com/blank/test/class.properties"));
} catch (IOException e) {
e.printStackTrace();
}
String s = p.getProperty("class");
涉及到反射机制。
还有通过类名的字符串来创建对象:
String name[] = s.split(",");
for (String n : name) {
try {
WakeUpListener w = (WakeUpListener) Class.forName(n)
.newInstance();
c.addListenrt(w);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
可以单独写成一个类,用单例模式来写。
对于程序的动态读取运行很有用。