我想了解什么是实际的责任,所以我想用一个我目前正在工作的例子。我有一个将产品信息从一个系统导入另一个系统的应用程序。应用程序的用户可以选择各种设置,以便在一个系统中的哪个产品字段中使用另一个系统中的产品字段。帮助理解单一责任原则
所以我有一个班,说ProductImporter,它的责任是导入产品。这个班很大,可能太大了。
该类中的方法很复杂,例如getDescription。这种方法不是简单地从其他系统获取描述,而是根据用户设置的各种设置设置产品描述。如果我要添加一个设置和一个新的描述方式,这个类可能会改变。
那么,这是两个责任吗?有没有一种产品可以进口,有一种可以获得产品说明。这似乎是这样的,几乎所有的方法都会在它自己的类中,而且看起来像是过度杀伤。
我真的需要很好的描述这个原理,因为我很难完全理解。我不想要不必要的复杂性。
它“显示缺乏设计” - 这是我不知道如何纠正的问题。如果描述方法属于课程内容,而且我必须根据各种设置对各种变体进行说明,那么您还可以如何设计它。我没有看到任何其他的方式。 – user204588 2010-02-19 15:26:17
你可以有一个描述类,其职责是处理变化。等等,当一个责任过大时,将其分解为更小的责任。 – 2010-02-19 15:38:50