2012-11-20 47 views
1

我需要從xls源(ole db)中加載數據,根據輸出文件的規範格式化,合併proccessed字段,然後將其保存到csv。「加載格式保存數據」的設計模式

如何處理必須是某種類型的多個數據字段?以某種方式格式化 - 等

我很難抽象這個問題的類結構。

哪種設計模式最適合我?

回答

1

我不會盡量在設計模式中思考,而是將問題分解成更小的部分,至少在開始的時候。

現在,你的描述可能有點模糊,真正進入有關實際處理的細節,但是從它我可以找出至少三個部分:

  • 的數據閱讀器
  • 數據處理器
  • 數據寫入器

你可能要考慮你的讀者和作家都相似,你會如何處理文件或流。例如,你的讀者可能有:

  • Open
  • Read(讀只是一個項目)
  • Close

與同爲作家,但Write

抽象兩個接口,一個IDataReader和一個IDataWriter,並讓您的IDataProcessor與讀取器和寫入器進行交互,但只能通過接口進行交互。

已具備了這些合同,就意味着你可以有一個讀者對作家來說,一種實現方式,如XLSReader : IDataReaderCSVWriter : IDataWriter,而不必擔心其內部的方式來解決每一個處理器。

擁有這些抽象讓你可以獨立地(通過模擬其他部分)編寫乾淨和獨立的單元測試,這將允許您在開發過程中測試每一步的每一步。

而且,這些類型的合同,讓你在處理小數據包的數據,而不是一個大批量的數據(像一個大DataTable之類的東西),衡量進展等

現在,根據您的實際需求,您可以擁有讀卡器提供的數據類型的架構或定義,輸出,格式器和變壓器可以改變輸入數據並構建輸出等等。