【问题标题】:Web API design pattern for accepting and outputting data用于接受和输出数据的 Web API 设计模式
【发布时间】:2019-05-14 17:51:25
【问题描述】:

我正在构建一个可以接受来自客户端的数据的 .NET Web API。它会对数据进行一些计算,然后将计算结果返回给客户端。

例如:

ModelData 的模型结构大纲:

Id,
ValueA,
ValueB

ModelResults 的模型结构大纲:

Id,
ResultingValue

API:

ModelResults ExecuteCalculation(ModelData modelData)

我正在尝试找出适合这种行为的适当设计模式。一开始我认为存储库模式就足够了,因为它涵盖了与该项目相关的许多设计模式。但我不完全确定,因为据我了解回购。模式是一种自上而下的方法(如果我错了,你可以纠正我)。

让我知道您对此有何看法。非常感谢。

【问题讨论】:

  • 为什么需要任何模式来获取输入和计算结果?您正在寻找不需要的复杂性。
  • 一种设计模式,很像brandonhein 所建议的。将使该过程更具可读性。如果我是唯一一个设计它的人,我会一起取消设计模式。但是计算引擎本身有点复杂。而且我认为设计模式会在某种程度上简化引擎并使其对我的团队更具可读性。

标签: c# asp.net-web-api design-patterns


【解决方案1】:

我不确定这是否有正确答案,因为选择设计模式是相当主观的和开发人员的偏好,而且我们没有 100% 的详细信息来说明您的计算内容。

如果你正在做一个简单的计算,那就是你的问题是什么,那么我认为你的第一次去就行了。

var calculator = new Calculator();
var result = calculator.Calculate(data);

我更喜欢复杂计算的构建器模式。通过将流程特定的逻辑应用于步骤,可以灵活地进行计算。在计算器中挖掘问题时,可读性看起来更清晰。

var result = new Calculator(data)
       .GetBaseNumbers()
       .CalculateYearly()
       .CalculateMonthly()
       .ApplyOverrides()
       .GetResult();

【讨论】:

  • 感谢brandonhein,您的示例确实为我提供了一些方向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
  • 2013-03-11
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多