如何解决一种使用 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 个,我想我要么必须为每种类型的几何图形创建某种字典或策略?困扰我的是每个案例中的条件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。