2011-11-28 53 views
4

我正在尋找一個德興模式來解決如下:「讀取,處理,保存」模式的設計模式?

讀取輸入

處理數據(INC確認)

保存結果

例子是: 閱讀一個csv文件,處理數據,保存爲xml 讀取MQ消息,處理數據並保存到數據庫。

我在思考着一個BusinessObject的的:

  • 有一個IInput實現來處理讀取和加載自身。
  • 可以通過「規則」進行驗證
  • 有一個IOutput實現來處理自己保存。

例如(僞代碼!)

public abstract class BusinessObject 
    { 
     public IInput Input { get; set; } 
     public IOutput Output { get; set; } 

     public BusinessObject(IInput input, IOutput output) 
     { } 
    } 

然後有一個Load,Process和Save方法。

但是,這對我來說並不合適。我想認爲 BO應該能夠加載和保存自己?

如果有人知道這可能是什麼模式,所以我可以閱讀它,或給我一個例子/解釋我將非常感激。

+1

僅供參考,您可以根據主題「ETL」或提取 - 轉換 - 裝載發現了更多的信息。 –

+0

就業務對象知道如何加載和保存自己而言,我認爲這是那些有兩種思想流派 - 一種是針對性的,一種針對性的。聽起來像可能與工作單元類似的東西也可能與你有關。 – 2011-11-28 16:36:05

+0

@JustinPinkley我的一半人認爲我應該有使用輸入創建BO的工廠類,然後是另一個使用BO並寫出結果的集合。另一半則表示,如果能夠這樣做,BO應該能夠加載和保存自己。 – BlueChippy

回答

4

您可能會使用管道模式。在該模式中,您定義了一系列組件(管道組件;鏈接然後是管道),併爲其提供輸入數據。然後,每個管道組件都會依次在通過管道推送的數據上執行。任何組件都可以從該數據讀取數據並將數據寫入該數據。

參見:

+0

流水線看起來正是我想要的。不知道我甚至需要一個BO,只是我的過濾器:加載,驗證,處理,驗證結果,保存:) – BlueChippy