如果某个东西只有两到三个状态,那么使用状态模式是不是有点矫枉过正?
问问题
139 次
3 回答
3
不,这不是矫枉过正。即使您的实际状态很少并且不希望添加更多,使用状态模式也会使您的系统更容易测试,因为您可以单独测试各个状态。
于 2010-11-30T03:23:18.670 回答
1
在您的确切情况下,我们不能说太多,因为您提供的信息太少。
但总的来说...
其他表达的意见可能会有所不同,但...
敏捷运动正在获得很大的力量。他们会推荐YAGNI(你不需要它)。
这个想法是将复杂性延迟到以后,因为:
- 我们开发人员往往喜欢复杂性,有时会把它放在不需要的地方。
- 稍后您将更好地理解您的代码;然后你可能会找到一个更简单的解决方案。
- 您的用户(或指定要做什么的人,即使是您)稍后会使用您的软件,因此需求可能会发生变化。因此,任何预期的复杂性都可能在那时证明是不可用的。
- 即使在(罕见的)情况下,您稍后会添加与现在添加的完全相同的复杂性......同时,您的代码库更简单,因此您的其他编码活动更简单、更快。这也是一种收获。
- 还要考虑您的时间不是无限的,并且可能有人为此付费(即使是您的空闲时间或培训时间)。如果把时间花在当前的问题上,而不是花时间在未来上,你的努力可能会更有用……
也就是说,如果你喜欢这个想法,那就去做吧,追随你的梦想!:-)
于 2010-11-30T05:43:27.810 回答
1
你说的是状态图吗?
无论如何,我说去吧。问题是将来您可能想要添加一个状态,然后认为它不值得实现您的模式,因为它只是多了一个状态,对吧?然后你有 4 个状态,你必须添加另一个,然后重复这个过程。
然后你会进入一个无法重构和使用状态模式的状态(双关语),因为它会涉及重写太多代码。
所以,第一次做对。
于 2010-11-30T02:24:38.917 回答