关于工厂模式有关问题
发布时间:2011-06-23 20:34:04 文章来源:www.iduyao.cn 采编人员:星星草
关于工厂模式问题
小弟正在学习工厂模式。有个疑问一直想不通,或许是我钻牛角尖了。
例如:接口类IUser中有4个方法,GetList(),Add(),Update(),Del()
实体类User实现IUser接口,并在自己的实体类中添加了GetListByID(int id)方法。
但通过看例子工厂模式返回的往往都是接口类IUser,那这样的话我就访问不到User类中的GetListByID(id)方法了。
那该如何去解决这个问题?
我有些困惑,请各位大虾们指点小弟一二。给我些思路,谢谢。
------解决方案--------------------
又发一帖...你这不是工厂模式的问题,而是接口设计的问题...IUser接口设计很粗陋,重构IUser才是正途...
------解决方案--------------------
------解决方案--------------------
给你个参考:
一、项目名称及描述:(实现步骤为:4-3-6-5-2-1)
1、WEB=表示层
2、BLL=业务逻辑层
3、IDAL=数据访问层接口定义
4、Model=业务实体
5、DALFactory=数据层的抽象工厂(创建反射)
6、SQLServerDAL=SQLServer数据访问层 / OracleDAL=Oracle数据访问层
DBUtility 数据库访问组件基础类
二、项目引用关系
1、Web 引用 BLL。
2、BLL 引用 IDAL,Model,使用DALFactory创建实例。
3、IDAL 引用 Model。
4、Model 无引用。
5、DALFactory 引用IDAL,通过读取web.config里设置的程序集,加载类的实例,返回给BLL使用。
6、SQLServerDAL 引用 Model和IDAL,被DALFactory加载的程序集,实现接口里的方法。
三、实现步骤
1、
创建Model,实现业务实体。
2、
创建IDAL,实现接口。
3、
创建SQLServerDAL,实现接口里的方法。
4、
增加web.config里的配置信息,为SQLServerDAL的程序集。
5、
创建DALFactory,返回程序集的指定类的实例。
6、
创建BLL,调用DALFactory,得到程序集指定类的实例,完成数据操作方法。
7、
创建WEB,调用BLL里的数据操作方法。
注意:
1、web.config里的程序集名称必须与SQLServerDAL里的输出程序集名称一致。
2、DALFactory里只需要一个DataAccess类,可以完成创建所有的程序集实例。
3、项目创建后,注意修改各项目的默认命名空间和程序集名称。
4、注意修改解决方案里的项目依赖。
5、注意在解决方案里增加各项目引用。
------解决方案--------------------
学习模式可以帮助我们在需要他的时候能想起来使用模式,而不是为了时髦而使用模式,你得首先明白工厂模式的真正用意。你举的这个例子似乎不太适合工厂模式吧,而且你也并没有体现出工厂模式,没有面向对象的感觉。只是个接口编程而已,向楼上的兄台说的那样,实体类中添加了GetListByID方法之后,违背了里氏代换原则,也就是说这样设计已经不合理了
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
(VS2005)VB有关继承封装在DLL里窗体
公司里有一套自己的架构并把它封装在叫MFW的DLL里,再学习使用时发现了很多不明白的地方。例如:现...
-
如何让treeview点击结点不刷新页面?
如何让treeview点击结点不刷新页面?
------解决方案--------------------
帮你顶
------解决...
-
单薄的业务层
相信开发WEB信息的人都用到过三层架构
表示层--》业务层--》数据访问层
以前一直开发CS结构最近一年一直在开发...
-
类爆炸问题,对维护也是恶梦?
原意在ERP项目中有设计一个工序类用來描述工序:
public Process
{
public string ProcessNo
{
...
-
怎么实现随意变换网页字体?
想做个艺术签名的网站
字体也找了几个
就是在用户输入“名字”后
把“名字”转换成几个字体显示出来
...
-
关于政府部门网站数据库设计
今天上面安排让我做个政府有关部门的网站,我看了下不是很复杂。可到了设计数据库表时候碰到了些问题...
-
如何自动为录入的人员信息分配用户权限
我这里有两类人,一类是教师,一类是学生,要解决的问题是,在用管理员身份录入教师和学生信息时,...
-
Ext.Net 和ExtJS
现在在做一个项目,用到了EXT.NET 但是有个缺点就是EXT.NET里的时间选择器dateField不能选择时分秒,现在想到用EXTJ...
-
谁手里有现成的提示框样式啊,急用
谁手里有现成的提示框样式或者皮肤啊 还有弹出div层的好看一点的样式 给我个呗 我这急用呢 ...
-
求两个样式的例子...
一个是点击修改弹出修改表单表格 出现在列表上 要特别好看的那种 最好是悬浮的
一个 要弹出的确...