当前位置:中国站长下载文章中心网页编程.NET编程 → Duwamish深入剖析-结构篇

Duwamish深入剖析-结构篇

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-14 9:59:23
对象,让这个Façade来负责管理系统内部类的调用,并为表示层提供了一个单一而简单的接口。这个Façade对象,在我们的Duwamish的设计中,就是BusinessFacade(业务外观)层。
  
  以下是Duwamish的结构关系图:
  
  
  
  
  我们从图中可以清楚的看到,浏览器首先调用的是表示层WEB,然后WEB将请求发送给业务外观层,业务外观层对请求进行初步的处理,判断是否需要调用业务规则层,还是直接调用数据访问层获取数据。最后由数据访问层访问数据库并按照来时的步骤返回结果到浏览器(对于图中涉及到其它的结构模块以后会分别予以详细介绍)。
  
  
  --------------------------------------------------------------------------------
  
  代码示例:
  
  以下是两种不同处理路径的代码示例:
  
  获取商品目录
  
  表示层调用业务外观层:
  
  productSystem = new ProductSystem();
  
  categorySet = productSystem.GetCategories(categoryID);
  
  业务外观层直接调用数据层:
  
  public CategoryData GetCategories(int categoryId)
  {
   if ( dsCommand == null )
   {
   throw new System.ObjectDisposedException( GetType().FullName );
   }
   return FillCategoryData("GetCategories", "@CategoryId", categoryId);
  }
  
  添加定单
  
  表示层调用业务外观层:
  
  public void AddOrder()
  {
   ApplicationAssert.CheckCondition(cartOrderData != null, "Order requires data", ApplicationAssert.LineNumber);
   ApplicationLog.WriteTrace("Duwamish7.Web.Cart.AddOrder:\r\nCustomerId: " +
   cartOrderData.Tables[OrderData.CUSTOMER_TABLE].Rows[0][OrderData.PKID_FIELD].ToString());
   cartOrderData = (new OrderSystem()).AddOrder(cartOrderData);
  }
  
  业务外观层调用业务规则层:
  
  public OrderData AddOrder(OrderData order)
  {
   ApplicationAssert.CheckCondition(order != null, "Order is required", ApplicationAssert.LineNumber);
  
   (new BusinessRules.Order()).InsertOrder(order);
   return order;
  }
  
  业务规则层调用数据层:
  
  public bool InsertOrder(OrderData order)
  {
  //此处省略复杂的处理逻辑
   if ( isValid )
   {
   using (DataAccess.Orders ordersDataAccess = new DataAccess.Orders())
   {
   return (ordersDataAccess.InsertOrderDetail(order)) > 0;
   }
   }
   else
   return false;
  }
  
  
  --------------------------------------------------------------------------------
  
  总结:
  
  通过分析Duwamish7的结构设计,我们掌握了Façade模式,并学习到了如何通过Façade模式对应用结构进行改进,同时了解了Duwamish7的基本概念和处理流程,为以后深入分析和学习Duwamish7的的其它部分打下了一个基础。
  
  
  --------------------------------------------------------------------------------
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

上一页  [1] [2]