本人是菜鸟哈!今年19岁!初次发帖希望各位多多关照!
前几天接触到了工厂模式与抽象工厂!
一个工厂只能生产出一种产品!有多少不同类型的产品就要多少个工厂!抽象工厂也不能完全的扩展!是不是有点累哟!
今天自己写了一个小程序!用上了工厂模式:
用XML配置自己写的类!
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<bean-id id="userDAO" class ="com.accp.student.class"></bean-id>
<bean-id id="。。。" class ="com.accp.student.。。。"></bean-id>
<bean-id id="。。。" class ="com.accp.student.。。。"></bean-id>
<bean-id id="。。。" class ="。。。。"></bean-id>
</beans>
用一个工厂来创建一个DAO对象!在商业逻辑层使用任何DAO对象时只需要通过Factory.getcreateDAO()
+参数如:("USERDAO“)
getcreateDAO()方法体:{
//ParseXml.getBend(id);根据给定字符串到XML里面获取出类相应类的路径!
String path= ParseXml.getBend(id);
IDAO idao=null;
try {
//使用反射来构造对象!即所有配置中都可以!
idao=(IDAO)Class.forName(path).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return idao;
}
IDao userdao = (UserDao) Factory.getcreateDAO("user");
即可使用UserDAO该类的方法
如果代码这样写了! 就可以不要什么工厂了! 直接改配置文件即可! 不管什么产品只要在XML里配置了!就可以访问!其实这个和用SPRING配置一个BEAN一样的道理! 如果有的SPRING还要 用的上工厂模式吗?
越想越糊涂了!到底在什么情况下用模式最好! 如果XML+反射, 工厂模式还有什么有沫!也许是自己搞不清楚! 请各位大虾指点一二!