c# - 使用什么模式更灵活?

标签 c# design-patterns

我正在构建一个接口(interface)来读取、验证、转换和存储数据。这样两个系统就可以相互通信。

我创建了一个通用流程,它运行良好且可扩展性很强:

  • IProcessor< P, S> -> Proces() : void

  • IProvider -> GetItems() : IEnumerable< string>

  • IValidator -> Validate(string) : void

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

  • IMapper< P, S> -> map (P) : S

  • IStorage -> 保存(S)

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

问题是有一条业务规则规定 P 必须根据值映射到 S1 或 S2。如何改变结构,使其更灵活?

最佳答案

添加接口(interface):

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

用它初始化映射器:

  • new Mapper(IBusinessRule<P, S>)

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

关于c# - 使用什么模式更灵活?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31548242/

相关文章:

c# - 未找到 ExpandoObject 属性

design-patterns - 存储库设计模式

javascript - Angular、React 和 Blaze(客户端 Meteor)之间的主要设计差异?

java - 从字符串中提取模式?

c# - 检查结果是否来自 SQL 中的特定表

c# - AzureAD 身份验证 : Audience validation failed. 受众不匹配

c# - 将存储过程转换为 LINQ 查询

c# - 无法导入.NET Core 3.0加载的DLL

javascript - React.js 与 Node.js Rest API

model-view-controller - 如何避免将依赖项注入(inject)对象以便它可以传递它们?