跟踪petshop系列二:调用的优先级
来源:互联网 发布:贵友玻璃优化排版软件 编辑:程序博客网 时间:2024/06/05 23:33
又看了一遍,又有了一点体会。
web-->modle-->bll-->dalfactory-->sqlserverdal-->sqlhelper
那么你肯定会问那个idal接口呢,据我看来他只是在设计时为了方便才引入的。分析如下:
我首先建立了实体(这是一种做法,在项目开始时要看具体情况而定),然后写接口,声明我要对他进行哪些操作;然后写sqlserverdal和sqlhelper的具体实现。代码说明:
bll:
public AccountInfo SignIn(string userId, string password) {
if ((userId.Trim() == string.Empty) || (password.Trim() == string.Empty))
return null;
IAccount dal = PetShop.DALFactory.Account.Create(); //调用函数
AccountInfo account = dal.SignIn(userId, password);
return account;
}
dalfactory:
public static PetShop.IDAL.IAccount Create()
{
string path = System.Configuration.ConfigurationSettings.AppSettings["WebDAL"]; //调用web.config节
string className = path + ".Account";
return (PetShop.IDAL.IAccount) Assembly.Load(path).CreateInstance(className);
// 通过反射找到 PetShop.SQLServerDAL。Account ,返回接口。而接口有SignIn(userId, password)方法,
而此方法的实现是sqlserverdal。也就是说我找到了操作用户的方法了,具体怎么实现的我不需要再管了。
}
web.config:
<add key="WebDAL" value="PetShop.SQLServerDAL" />
在这里,bll中是直接调用工厂的,工厂又指向了sqlserverdal,而sqlserverdal又继承了接口。所以接口只是在
设计之初为了方便而建造的。
工厂方法就如:一位客人去饭店叫饭说,我要米饭。那等一会,服务员会给你端来。
用户在bll中说我要操作用户的接口,那工厂方法就给了你Iaccount接口。
- 跟踪petshop系列二:调用的优先级
- 跟踪petshop系列四:反射的使用
- 跟踪petshop系列一: sqlhelp的参数缓存
- 跟踪petshop系列三:IList使用
- 《解剖PetShop》系列之二
- 《解剖PetShop》系列之一,二
- 《解剖PetShop》系列之二
- 《解剖PetShop》系列之二
- 《解剖PetShop》系列之二
- 《解剖PetShop》系列之二
- 《解剖PetShop》系列之二
- 《解剖PetShop》系列之二
- 跟踪petshop系列一: sqlhelp的参数缓存 续2--keywords的提取和分离
- 跟踪commnityServer系列一:CS与petshop中数据访问的解析
- 《解剖PetShop》系列之一:PetShop的系统架构设计
- 《解剖PetShop》系列之一:PetShop的系统架构设计
- PetShop的系统架构设计 《解剖PetShop》系列之一
- 《解剖PetShop》系列之一:PetShop的系统架构设计
- 3.19~3.21
- 不可靠的SESSION
- 系统开发与ERP开发的次第
- 处理asp.net2.0不能Debug的方法,直接在Iss中修改
- GridView 实现服务器端和客户端全选的两种方法
- 跟踪petshop系列二:调用的优先级
- 局域网问题的设置
- Windows自启动程序十大藏身之所
- 对PCA方法的改进
- 在ASP.NET 2.0中直接得到本页面生成的HTML代码
- 一位微软学者的回信
- 理解 Zend 框架 基础篇
- IEEE二进制浮点数的表示
- 创建表头固定,表体可滚动的GridView