【发布时间】:2014-05-11 09:26:49
【问题描述】:
这是一个简单的例子,我想开始揭露这个问题。
假设您有一堆数字,范围从 0 到 10,并且您想将它们映射到字母等级(A、B、C、D、F)。
可以编写一系列if 语句来测试相应字母范围内的给定数字并返回正确的字母。
问题是:什么模式可以用来使它更健壮,也许更解耦?例如,如果我有 10 个而不是 5 个数字范围,我将不得不编辑这个整体方法来添加其他 5 个案例。我也不能保证我的范围是独占的,即使在这种情况下它们应该是。
我可以想象这里使用了某种Dictionary<Range<int>, string>>,但它似乎仍然不足以提供我正在寻找的所有保证。或许可以使用多态性以一种更精简和可扩展的方式对这一概念进行建模?
对于这个简单的例子我很抱歉,但我确信这可以作为通用范围映射策略应用于其他更复杂的算法。
【问题讨论】:
标签: .net oop design-patterns mapping range