我正在构建一个读取,验证,转换和存储数据的接口。通过这种方式,两个系统可以相互通信。
我创建了一个通用的流程,它工作得很好并且非常易于扩展:
IProcessor< P,S> - > Proces():void
IProvider - > GetItems():IEnumerable<串GT;
IValidator - >验证(字符串):void
IParser< P> - >解析(字符串):P
IMapper< P,S> - >地图(P):S
的IStorage< S> - >保存(S)
新处理器(IProvider,IValidator,IParser< P>,IMapper< P,S>,IStorage< S>)
问题是有一个业务规则规定P必须根据值映射到S1或S2。如何改变结构,使其更灵活?
答案 0 :(得分:0)
添加界面:
IBusinessRule<P, S>
- &gt; MapToS1(P) : bool
用它初始化mapper:
new Mapper(IBusinessRule<P, S>)
P.S。我的意思是S1 : S
和S2 : S
。