【问题标题】:Return look up values SOLID and clean architecture返回查找值 SOLID 和干净的架构
【发布时间】:2023-03-26 17:17:01
【问题描述】:

我们的应用程序有多个下拉列表,其中包含从数据库动态加载的数据。

  • 颜色下拉列表
  • 尺寸下拉列表
  • 品牌下拉列表
  • 模型下拉列表

我们调用了 4 个不同的程序:

GetColours 
GetSizes
GetMakes
GetModels

从历史上看,我们将这些过程的结果映射到通用模型类:

public class Lookup
{
    public int Key { get; set; }
    public string Key_Value { get; set; }
}

这个通用模型被传递到前端,我们为key和key/value属性设置option和option value。

我们正在使用干净的架构和 SOLID 原则重新编写应用程序。

问题是,映射到通用模型是否仍然正确,或者最好为每个查找(SOLID)创建一个单独的模型,即,

public class colourLookup
{
    public int colourId { get; set; }
    public string colourName { get; set; }
}

public class makeLookup
{
    public int makeId { get; set; }
    public string makeName { get; set; }
}

【问题讨论】:

  • 听起来您需要一个抽象类Lookup,并带有一个名为GetValues 的方法。然后继承Lookup的类:ColorLookupMakeLookup,并重写GetVales()方法来填充私有Dictionary。

标签: c# .net architecture solid-principles clean-architecture


【解决方案1】:

不管你怎么看,Lookup 是一个数据模型,而不是一个业务类。只要它只做一件事和一件事,未来不太可能随着需求的变化而变化,易于测试(可以模拟),并且遵守接口隔离原则和依赖倒置原则的任何适用部分,就可以了就像它一样。

如果您感到特别紧张,只需将您的 colourLookupmakeLookup 派生自 Lookup,它们本身没有特定的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2020-02-17
    • 2016-06-24
    • 2013-05-24
    • 1970-01-01
    • 2018-09-16
    相关资源
    最近更新 更多