14
解决方案应该是尽可能通用的还是尽可能具体的?
假设我有一个具有“类型”属性的实体。可能有20多种可能的类型。 现在,我被要求实现一些允许从A-> B更改类型的方法,这是唯一的用例。 那么,我应该实现一些允许对类型进行任意更改的方法吗,只要它们是有效的类型?或者我应该只允许它根据要求从A-> B更改而拒绝其他任何类型的更改,例如B-> A或A-> C? 我从双方都可以看到优缺点,在将来出现类似要求的情况下,通用解决方案意味着工作量会减少,但这也意味着出错的可能性更大(尽管我们100%控制着调用方点)。 一种特定的解决方案不太容易出错,但是如果出现类似的要求,将来需要做更多的工作。 我一直在听到,优秀的开发人员应该尝试预期变化并设计系统,以便将来轻松扩展,这听起来像是通用解决方案? 编辑: 在我不太具体的示例中添加更多详细信息:在这种情况下,“通用”解决方案比“特定”解决方案需要的工作更少,因为特定解决方案需要对旧类型和新类型进行验证,而通用解决方案只需要验证新类型。