作者 内容
 gao_qh  用户界面层的数据交互问题
 

三层系统中,层与层之间数据如何交互,也看了不少的书,有一个问题总是不太明白,请高手指教。
这里有一个简单例子,假设有一个处理订单的程序,包含以下数据
订单(Order)表:OrderID,CustomerID,Date
订单明细(OrderDetail)表:OrderID,ProductID,Price,Qty,Amount
客户(Customer)表:CustomerID,CustomerName
产品(Product)表:ProductID,ProductName
最后用户界面需要呈现某一张订单,可能Order这个中间层组件上有GetOrderByOrderID这个方法,该方法返回一个DataSet,该DataSet包含了订单(Order)表:OrderID,CustomerID,Date
订单明细(OrderDetail)表:OrderID,ProductID,Price,Qty,Amount
问题是用户界面还需要呈现CustomerName,以及ProductName等数据才符合实际要求。请问这种情况应该如何处理?我应该使用sql的join直接将CustomerName,ProductName等数据添加到GetOrderByOrderID方法所返回的DataSet中吗?似乎这是传递数据最高效的办法,但是违背了中间层的对象化设计,并且不同的地方可能有不同的要求。如果不采用该方法,如何在UI中结合使用DataAware控件呢?
最后UI层直接访问数据层组件的方法是推荐的做法吗?需要将对数据层组件的访问完全用业务逻辑层组件封装起来吗?

 03/09/22 21:24 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 spide   不论有没有getCustomerByCustomerID和getProductByProductID,还是如你所说将他们的name包含在Order资料中,都只是实现方法的小小的差别,并没有改变那些对象。基本概念先描述好,就可以灵活地尝试各种接口形式。你过于斤斤计较于形式了。
 
 03/09/24 21:18 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首