2015-07-21 49 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