c#-4.0 - 一种使用 SOLID 原理替换 Switch 的方法
问题描述
我在创建字符串构建器的服务中有以下方法,基本上它根据该特定几何图形列表中的元素数量来选择字符串是复数还是单数:
private string TranslateForm(string type)
{
switch (type)
{
case "Square":
return _geometricFormsService.InformationSquares.Quantity == 1 ? _localizationService.GetString("Header.Square") : _localizationService.GetString("Header.Squares");
case "Circle":
return _geometricFormsService.InformationCircles.Quantity == 1 ? _localizationService.GetString("Header.Circle") : _localizationService.GetString("Header.Circles");
case "EquilateralTriangule":
return _geometricFormsService.InformationTriangles.Quantity == 1 ? _localizacionService.GetString("Header.Triangle") : _localizacionService.GetString("Header.Triangles");
}
return string.Empty;
}
我有更多的几何图形,所以这意味着 switch 语句可能会增加。我很想看看是否有一种用一些设计模式替换这段代码的好方法,因为我希望能够在这里应用 SOLID,我看到打开关闭原则被违反,每次我添加一个新的几何形式时我都有修改类并添加新案例。
另一件事是,我有更多的几何图形,而不仅仅是这 3 个,我想我要么必须为每种类型的几何图形创建某种字典或策略?困扰我的是每种情况下的条件。
解决方案
推荐阅读
- java - 将 spring boot 从 2.1.0 升级到 2.2.2.RELEASE ,现在启动时出现异常
- google-cloud-dataflow - Apache Beam 未从订阅中删除无效元素
- python - HoloViews 创建插值彩色热图
- python - 意外的输出结果
- javascript - 使用带有 nodeList 的 .find() jquery 函数
- java - JUnit 测试/调用函数几次
- tensorflow - 张量流中的类型错误
- scala - 为什么并行 pi 估计比顺序 pi 估计慢?
- excel - 将 Excel 中的一系列单元格导出到 Word 并将 Word 文档另存为 Word 文件和 PDF 文件
- c# - 如果服务总线计数变为零,则发送邮件