跟踪petshop系列二:调用的优先级

 又看了一遍,又有了一点体会。
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接口。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值