Return 查找值 SOLID 和 clean architecture
Return look up values SOLID and clean architecture
我们的应用程序有多个下拉列表,其中包含从数据库动态加载的数据。
- 颜色下拉列表
- 尺码下拉列表
- 品牌下拉列表
- 模型下拉列表
我们调用了 4 个不同的程序:
GetColours
GetSizes
GetMakes
GetModels
从历史上看,我们将这些程序的结果映射到通用模型 class:
public class Lookup
{
public int Key { get; set; }
public string Key_Value { get; set; }
}
这个通用模型被传递到前端,我们将选项和选项值设置为键和 key/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
都是数据模型,而不是业务 class。只要它只做一件事并且只做一件事,将来不太可能随着需求的变化而改变,易于测试(可以模拟),并且遵守接口隔离原则和依赖倒置原则的任何适用部分,就可以了就像它一样。
如果您感到特别紧张,只需让您的 colourLookup
和 makeLookup
派生自 Lookup
,本身没有特定行为。
我们的应用程序有多个下拉列表,其中包含从数据库动态加载的数据。
- 颜色下拉列表
- 尺码下拉列表
- 品牌下拉列表
- 模型下拉列表
我们调用了 4 个不同的程序:
GetColours
GetSizes
GetMakes
GetModels
从历史上看,我们将这些程序的结果映射到通用模型 class:
public class Lookup
{
public int Key { get; set; }
public string Key_Value { get; set; }
}
这个通用模型被传递到前端,我们将选项和选项值设置为键和 key/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
都是数据模型,而不是业务 class。只要它只做一件事并且只做一件事,将来不太可能随着需求的变化而改变,易于测试(可以模拟),并且遵守接口隔离原则和依赖倒置原则的任何适用部分,就可以了就像它一样。
如果您感到特别紧张,只需让您的 colourLookup
和 makeLookup
派生自 Lookup
,本身没有特定行为。