新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:Duwamish 7未来之路 - 系统架构(原创)

Duwamish 7未来之路 - 系统架构(原创)

新客网 XKER.COM 2003-07-12 来源: 收藏本文
业务外观和业务规则干什么?


Duwamish 7业务逻辑分为两层业务外观和业务规则,那为什么要分为两层呢?他们干什么的?
业务外观

// Fill in data for the OrderSummary table of OrderData
         //
            summaryRow[OrderData.TAX_FIELD] = orderRules.CalculateTax(order);
            summaryRow[OrderData.SHIPPING_HANDLING_FIELD] = orderRules.CalculateShipping(order);
            summaryRow[OrderData.TOTAL_FIELD] = subTotal +
                                             (Decimal)(summaryRow[OrderData.SHIPPING_HANDLING_FIELD]) +
                                             (Decimal)(summaryRow[OrderData.TAX_FIELD]);
他为我们展现了,在定单系统中要包含那些元素,如:TAX_FIELD,SHIPPING_HANDLING_FIELD,TOTAL_FIELD等等,这些是要给web层来显示的。但是我们依旧不知道Tax是怎么算出来得,这就需要业务规则层来处理:

业务规则

public Decimal CalculateTax(OrderData order)
        {
            ApplicationAssert.CheckCondition(order != null, "order is required", ApplicationAssert.LineNumber);
            
            Decimal taxRate = new Decimal(10.0);
            Decimal orderTax = (Decimal)order.Tables[OrderData.ORDER_SUMMARY_TABLE].Rows[0][OrderData.SUB_TOTAL_FIELD];
            return Decimal.Round (orderTax / taxRate, 2);
        }

这样我们就知道怎样算Tax了,是不是很好?但是为什么要这样呢?继续……

如果有一天你发现算Tax的方法要变了(要增税什么的!!),是不是改一下CalculateTax就OK了呢?试想一下如果将业务外观和业务规则合并有什么后果(如果你写的是类似Amazon.com的应用呢?)


(以小见大,抛砖引玉)
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐