关于抽象工厂、三层架构的项目始终理解不到位,请大牛们点拨一下???

qingYun1029 2011-06-29 10:36:01
加精
前几天在csdn上下项目,是csdn上哪位朋友分享的,先感谢一下。

项目是关于抽象工厂和三层架构的,于是我也下载来研究一下,开始看了老半天,感觉我的理解总是“不踏实”,好像缺少点什么,望大牛可以点拨一下,来个茅塞顿开。。

项目结构原图:


我把主要关于抽象工厂和三层架构的几个模块拿出来画了一下:


先说一下我的理解——各个层的用途(倒过来讲——从底层说起)
AccessDAL——数据访问层(主要用于操作Access数据库)
SQLServerDAL——数据访问层(主要用于操作SQL Server数据库)
FactoryDAL——通过配置文件,决定使用哪个数据访问层。
BLL——业务逻辑层,主要通过FactoryDAL等到确切的数据访问层对象(是AccessDAL中的对象还是SQLServerDAL中的对象)
UI——页面展示(不多说)

我总觉得我还有一下地方没有考虑到,例如第二张图片中的红色框框部分。主要是各层之间对IDAL关系不够理解。。。
———————————————————————分割一下———————————————————————————


先贴一点点代码吧,实在不知道该贴哪儿的代码……

using System;
using System.Data;
using cofcms.IDAL;
using cofcms.FactoryDAL;

namespace cofcms.BLL
{
/// <summary>
/// 业务逻辑类Adbanner 的摘要说明。
/// </summary>
public class Adbanner
{
protected static readonly IAdbanner dal = DataAccess.CreateAdbanner();
public Adbanner()
{ }
#region 成员方法
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(int Id)
{
return dal.Exists(Id);
}

//…………省略很多方法…………
#endregion 成员方法
}
}



上面的类中主要是protected static readonly IAdbanner dal = DataAccess.CreateAdbanner();这句代码不是很懂
DataAccess是FactoryDAL层中的一个类,CreateAdbanner的方法定义是:

public static IAdbanner CreateAdbanner()
{
string classname = path + ".Adbanner";
return (IAdbanner)System.Reflection.Assembly.Load(path).CreateInstance(classname);
}


写的东西比较多,麻烦大牛们耐心阅读一下!!!

谢谢!!!
...全文
5153 151 打赏 收藏 转发到动态 举报
写回复
用AI写文章
151 条回复
切换为时间正序
请发表友善的回复…
发表回复
cookie-niu 2014-01-16
  • 打赏
  • 举报
回复
汗呀!三年多又是我回的最后的帖子
cookie-niu 2014-01-16
  • 打赏
  • 举报
回复
这个帖子一定要mark!!
cookie-niu 2011-07-09
  • 打赏
  • 举报
回复
我也下载了一份学习。感觉要是客户做修改真的会很麻烦。
不知道那个大牛能给一份好的开源net网站呢。 我当初下载这个系统看后已经很感激发布人了。找到完全开源的net网站真的不容易。我邮箱6513673@qq.com。如果哪位大牛有好的入门级开源net网站希望不吝给一份。
xu_2007 2011-07-07
  • 打赏
  • 举报
回复
IDAL接口是更高层次的抽象,所以面向对象的精髓在于“面向抽象”!
kofkyo 2011-07-06
  • 打赏
  • 举报
回复
留个名学习
johnsonljf345 2011-07-06
  • 打赏
  • 举报
回复
抽象工廠一個例子切換數據庫
wanggang4521 2011-07-05
  • 打赏
  • 举报
回复
支持一下。
cxh0624 2011-07-05
  • 打赏
  • 举报
回复
路过 接点分
sdplyzj 2011-07-05
  • 打赏
  • 举报
回复
学习学习
qingYun1029 2011-07-05
  • 打赏
  • 举报
回复
小道消息 2011-07-05
  • 打赏
  • 举报
回复
楼主,把这个例子也发我一份好吗,我想学习下,feel@5ygs.com 先谢谢楼主
fjwhq 2011-07-04
  • 打赏
  • 举报
回复
看不懂,来学习的。
踏月 2011-07-04
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分
houhanxin1 2011-07-04
  • 打赏
  • 举报
回复
讲的很好
sjtuhjh 2011-07-04
  • 打赏
  • 举报
回复
goood !!!!!!!!!!!
ys1234567890 2011-07-04
  • 打赏
  • 举报
回复
这个有点看不懂啊
jaozp 2011-07-04
  • 打赏
  • 举报
回复
人只知其形不知其神
ZBL007ZBL007 2011-07-03
  • 打赏
  • 举报
回复
有点意思
qycqycq 2011-07-03
  • 打赏
  • 举报
回复
新手路过!!!学习了
aydf1 2011-07-03
  • 打赏
  • 举报
回复
顶一下 学习学习!
加载更多回复(131)

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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