2015-07-21 46 views
2

我正在構建一個接口來讀取,驗證,轉換和存儲數據。這樣兩個系統可以相互通信。使用哪種模式更靈活?

我創建了一個通用的流程的正常工作,是非常可擴展:

  • IProcessor < P,S> - >理線():無效

  • IProvider - > GetItems(): IEnumerable的<字符串>

  • IValidator - >驗證(字符串):無效

  • IParser < P> - >解析(字符串):P

  • IMapper < P,S> - >地圖(P)表示:S

  • 的IStorage < S> - >保存(S)

  • 新處理器(IProvider,IValidator,IParser < P>,IMapper < P,S>,的IStorage < S>)

的問題是,有一個業務規則WH ich指出P必須根據值映射到S1或S2。如何改變結構,使其更加靈活?

+2

什麼是'P'?什麼是「S1」或「S2」? –

+2

這似乎是一個測試問題... –

+1

您是否正在重新構建BizTalk?編寫一個界面引擎很少有很好的使用時間,如此多的預構建的可用。 – Mitch

回答

0

添加一個接口:

  • IBusinessRule<P, S> - >MapToS1(P) : bool

初始化映射它:

  • new Mapper(IBusinessRule<P, S>)

附:我的意思是S1 : SS2 : S