关于三层结构,达人进,谢谢!

ZiRRen 2007-01-16 11:33:05
我做的一项目是这样的
BO:
public static DataTable QueryAll()
{
try
{
IBillPayerDAO assDAO = DALFactory.CreateBillPayerDAO();
return assDAO.QueryAll();
}
catch (Exception ex)
{
throw new Exception(ex);
}
}
DALFactory:
public static IBillPayerDAO CreateBillPayerDAO()
{
Assembly assembly = Assembly.GetExecutingAssembly();

return (IBillPayerDAO)assembly.CreateInstance("GFMIS.FS.DAL.BaseData.BillPayerDAO");

}

我知道这是工厂模式,哪位给详细解释一下?
1。GetExecutingAssembly()作用
2。为什么用接口的对象。
3。更详细的解释最好
...全文
236 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyq1986 2007-01-16
  • 打赏
  • 举报
回复
Assembly采用反射机制,动态加载dll创建类实例,用接口来接受类实例,应用了多态性,
利于将来程序的扩展,,同时限制操作,
renmasheshou 2007-01-16
  • 打赏
  • 举报
回复
GetExecutingAssembly 反射

工厂模式既然知道就应该知道接口和数据库的屏蔽了~
ZiRRen 2007-01-16
  • 打赏
  • 举报
回复
是不是直接从BO调用接口里的方法就可以了,为什么还要加一层工厂,好处在哪?
Assembly怎么用?
ZiRRen 2007-01-16
  • 打赏
  • 举报
回复
最好能一步步的把工厂解释一下
liqingle 2007-01-16
  • 打赏
  • 举报
回复
算是学习一下吧。。我现在也在看着一部分。。
zhsu 2007-01-16
  • 打赏
  • 举报
回复
Assembly.GetExecutingAssembly();
获取包含当前执行的代码的程序集
return (IBillPayerDAO)assembly.CreateInstance("GFMIS.FS.DAL.BaseData.BillPayerDAO")
通过反射取得Data层BillPayerDAO类的实例

在反射工厂模式中用接口起规划调用方式的作用。
详细工厂模式的使用上下文情况和具体说明请搜一下.Net设计模式说明。
wengnet 2007-01-16
  • 打赏
  • 举报
回复
Spring.net是啥?
霹雳虫 2007-01-16
  • 打赏
  • 举报
回复
我也看过这样的程序。但是这样把实现类都打包成了Dll,那以后换实现来也不好换呀。
还是采用Spring.net通过配置走好。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧