c# - 用于接受和输出数据的 Web API 设计模式
问题描述
我正在构建一个可以接受来自客户端的数据的 .NET Web API。它将对数据执行一些计算,然后将计算结果返回给客户端。
例如:
ModelData 的模型结构大纲:
Id,
ValueA,
ValueB
ModelResults 的模型结构大纲:
Id,
ResultingValue
接口:
ModelResults ExecuteCalculation(ModelData modelData)
我试图找出适合这种行为的适当设计模式。一开始,我认为存储库模式就足够了,因为它涵盖了与该项目相关的许多设计模式。但我不完全确定,因为据我了解回购。模式是一种自上而下的方法(如果我错了,你可以纠正我)。
让我知道您对此有何看法。非常感激。
解决方案
我不确定是否有正确的答案,因为选择设计模式是相当主观的和开发人员的偏好,而且我们没有 100% 的关于您计算内容的详细信息。
如果你正在做一个简单的计算,那就是你的问题是什么,那么我认为你的第一次去就行了。
var calculator = new Calculator();
var result = calculator.Calculate(data);
我的偏好是复杂计算的构建器模式。通过将流程特定的逻辑应用于步骤,可以灵活地进行计算。在计算器中挖掘问题时,可读性看起来更清晰。
var result = new Calculator(data)
.GetBaseNumbers()
.CalculateYearly()
.CalculateMonthly()
.ApplyOverrides()
.GetResult();
推荐阅读
- django - __init__() 有多个参数值试图覆盖 forms.Form
- python - Selenium Python 按名称查找元素不起作用
- git - 如何从变基中跳过特定文件
- php - 如何在 TFS 中运行 PHP 脚本?在 TFS 中是否可以通过命令行运行 PHP 脚本?
- android - 使用 Lambda 的 Android 自定义身份验证
- c++ - 标准::地图
::find() 没有找到任何东西 - python - 提高比较 pandas 数据帧行的 for 循环的性能
- php - 获取图像大小会导致 RSS 提要出错
- ruby-on-rails - 为旧版 Rails 应用程序寻找兼容的 Gem 版本
- r - 将 xts 对象列表写入 excel