我這是由幾種不同類型的銷售訂單繼承了SalesOrder類。它有一個名爲ValidateItems(OrderItemList,itemAdditionalValidation)的方法,該方法接受訂單商品列表和委託商對訂單商品進行附加驗證。不同的銷售訂單分別定義它們自己的委託版本,然後在調用父級SalesOrder類的ValidateItems時傳遞它們。委託接受一個OrderItem對象。 OrderItem類有一個Validate()方法。 ValidateItems方法遍歷列表並在每個OrderItem上調用Validate,然後調用itemAdditionalValidation委託並在OrderItem中傳遞它。重構一些我的代碼
到目前爲止,當我想驗證的項目,我總是會創建的所有項目添加到相應的訂單,然後順序將調用ValidateItems,並採取所有驗證的照顧。但是,現在我希望能夠直接調用OrderItem.Validate而不創建訂單,但是我不知道如何重構委託。基本上我希望OrderItem能夠根據它處理的訂單類型知道要調用哪個代理。有任何想法嗎?還有關於如何改進我目前的架構的任何提示將不勝感激。
是的,但我需要能夠驗證一個訂單項自己沒有把它訂單。原因是我有一個表格,當客戶轉移到下一個訂單項目時,應該驗證每一行訂單項目,但我不希望它每次都按順序驗證所有訂單項目。我只想在發生時確認一個訂單商品。 – Riz 2009-11-16 23:33:20
實際上你的第二段很有意義。我會去做! – Riz 2009-11-16 23:48:19