接口:
Dao {
add();
}
两个实现类:
MySQLDao
Dao{
add() {
System.
.println(
);
}
}
OracleDao
Dao {
add() {
System.
.println(
);
}
}
工厂类:
MyFactory {
Properties
=
Properties();
{
{
.load(MyFactory.
.getResourceAsStream(
));
}
(IOException e) {
e.printStackTrace();
}
}
Object getObject(String name){
{
String className =
.getProperty(name);
Class<?> clazz = Class.forName(className);
Object obj = clazz.getConstructor().newInstance();
obj;
}
(Exception e) {
e.printStackTrace();
RuntimeException(
);
}
}
}
测试类:
Test1 {
main(String[] args) {
Dao mysqlDao = (Dao) MyFactory.getObject(
);
mysqlDao.add();
Dao oracleDao = (Dao) MyFactory.getObject(
);
oracleDao.add();
}
}
测试结果:
工厂模式,可以理解为:有了很多个工厂方法,自己需要调用哪个类,就调用当前类的工厂方法,获取相应的具体实例。
更多技术咨询可关注:gzitcast