Clark Chan

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  66 随笔 :: 0 文章 :: 183 评论 :: 4 引用

Microsoft .NET Pet Shop 4.0 学习之旅(二)

项目的引用关系1

 

初看到Pet Shop 4.0的源代码觉得结构很复杂,今天我只讨论业务逻辑层(BLL)以下层。我抽象出了基本的6层,他们是:DBUtilityModelSQLServerDALIDALDALFactoryBLL

项目结构.jpg 

1,  物理访问层【DBUtility】:负责数据库的存、取操作,包含数据库连接字符串信息和公共静态方法(完成数据库增,删,改,查)。他不引用别的任何层,属于最底层。

2,  业务实体层【Model】:负责数据库表的抽象,将数据库的表抽象成实体对象类(拥有私有成员和属性公共方法)。一个Model的实例(instance)对应数据库表的一条记录。他也不引用其他任何层,属于较底层。

3,  数据访问层【SQLServerDAL】:负责拼写数据访问的SQL语句和存储过程,然后进行处理,并将数据库返回的结果集装在自己(SQLServerDAL)的肚子里面,等待其他层调用。SQLServerDAL拿到Model的属性拼写出SQL字符串,然后放进DBUtility(机器)中执行,得到数据集(DataSet)。所以SQLServerDAL引用Model所以SQLServerDAL引用DBUtility。因为IDALSQLServerDAL的接口层,用来定义数据访问层的名词空间和返回类型的。SQLServerDAL封装了接口的处理方法。他将继承于接口层。所以SQLServerDAL引用IDAL

4,  数据访问接口层【IDAL】:是SQLServerDAL的方法抽象,SQLServerDAL处理的数据对象是Model,于是IDAL处理的参数(名词空间)同样是Model所以IDAL引用了Model

5,  基于上面的4个项目,4条关系,我们很清晰的得到下面的项目关系图形:
结构1.jpg

总结:IDAL引用ModelSQLServerDAL引用ModelSQLServerDAL引用DBUtilitySQLServerDAL引用IDAL

 

6,  由于时间的关系,下一次介绍另外2个项目和4条关系:

 

结构2.jpg 


注意!在博客园社区以外转载,必须注明:
作者:Clark Chan
和原文出处:http://clarkchan.cnblogs.com/
否则谢绝转载!

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

posted on 2006-09-22 18:21 Clark Chan 阅读(2871) 评论(3)  编辑 收藏 网摘 所属分类: .NET Pet Shop 4.0

评论

#1楼  2008-08-29 13:09 汉城      
一个Model的实例(instance)对应数据库表的一条记录。

能说详细点吗? 不理解
  回复  引用  查看    

#2楼 [楼主] 2008-09-08 18:26 Clark Chan      
@汉城
@汉城
Model是一个类型,如:public class Car{public Car(string type) }

我买了一辆车Car myCar = new Car("奥迪");
你买了一辆车Car yourCar = new Car("红旗");

那么 myCar 和 yourCar 就分别对应数据库中的一条记录。

数据库结构:
ID Name
001 奥迪
002 红旗

  回复  引用  查看    

#3楼  2008-11-13 10:25 牛腩      
讲得太棒了。。。做了1个多月的.NET代码工,只知道增删查改。。。现在是应该看看点架构和设计模式之类的了。。呵呵。。
  回复  引用  查看    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-12-07 13:24 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: