欧美日韩精品乱国产538,a无码免费在线观看,久久精品一区二区东京热,狠狠躁天天躁无码字幕

您的位置: 首頁 > 資訊 > 設(shè)計

asp.net架構(gòu)設(shè)計解惑

藝術(shù)中國 | 時間: 2010-07-30 08:42:36 | 文章來源: 博客園

代碼

public class OrderManager

{

public void PlaceOrder(OrderDTO order)

{

// Validate order based on business rules

// Check for stock availablity on items ordered

// Add the order to the database

// Set the order id on the OrderDTO object

}

public bool CancelOrder(Guid orderId)

{

// Retrieve order from database

// Determine if the order can be canceled

// if order can be canceled, set as canceled

// return true/false if order was canceled

}

public bool AddItemToOrder(Guid orderId, OrderItemDTO ItemToAdd)

{

// Retrieve order from database

// Determine if the item can be added to the order

// Add a new item row in the database

// return true/false if item was added to the order

}

public bool ProcessOrder(Guid orderId)

{

// Check to ensure this order can be processed.

// Validate order based on business rules

// Update the stock levels of products ordered

// return true/false if order was processed

}

}

在上面的代碼中,所有和訂單處理有關(guān)的邏輯都寫在OrderManager類中。類中的每一個方法就對應(yīng)業(yè)務(wù)邏輯中的一個流程或者說對應(yīng)一個use case,例如:CancelOrder就是取消訂單。

通過Transaction Script的方式來組織業(yè)務(wù)邏輯,一個很好的好處就是直觀,很容易理解代碼在做什么。如果有新的流程來了,再加一個方法就行了。

同時,這種組織方式的弊端就在于,當系統(tǒng)中的業(yè)務(wù)變得多而且復(fù)雜的時候,那么這樣的方法就開始變多,最后的結(jié)果就是一個類中有成百上千個方法。而且這些方法中,除了一些基本的驗證可以提取為方法重用,其他的流程控制代碼在很多的地方要重寫,特別是當有兩個流程差不多的時候,代碼不可避免的重新寫。于是,這樣的類開始變得龐大而難以管理。

Active Record

這種組織方式已經(jīng)是我們最熟悉的了。

在很多的項目中,我們的業(yè)務(wù)實體類基本和數(shù)據(jù)庫中表是一一對應(yīng)的,例如一個Order業(yè)務(wù)類就是代表了數(shù)據(jù)庫中的Order表。而且在平時項目中,”樸實的三層(N層)”,一般都是基于這種方式在組織邏輯。

這種方式的最大的區(qū)別就是每個業(yè)務(wù)類自己負責自己的數(shù)據(jù)存取,也就是說在業(yè)務(wù)類中包含了業(yè)務(wù)邏輯的處理和數(shù)據(jù)的存取。

   上一頁   1   2   3   4   下一頁  


相關(guān)文章
注:凡注明 “藝術(shù)中國” 字樣的視頻、圖片或文字內(nèi)容均屬于本網(wǎng)站專稿,如需轉(zhuǎn)載圖片請保留 “藝術(shù)中國” 水印,轉(zhuǎn)載文字內(nèi)容請注明來源藝術(shù)中國,否則本網(wǎng)站將依據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護條例》維護網(wǎng)絡(luò)知識產(chǎn)權(quán)。
打印文章    收 藏    歡迎訪問藝術(shù)中國論壇 >>
發(fā)表評論
用戶名 密碼
 
尚無評論

留言須知

  • <sup id="q8qqq"></sup>
    
    <cite id="q8qqq"><ul id="q8qqq"></ul></cite>
  • <noscript id="q8qqq"><optgroup id="q8qqq"></optgroup></noscript>
    <nav id="q8qqq"><code id="q8qqq"></code></nav>
  • <small id="q8qqq"></small>