我们使用spring框架,遇到了这样的情况:
我们有服务类,例如CatalogManager,CourseManager,现在希望让它们具有诸如parseXML之类的功能。
我的问题是我应该将这些方法放入每个单独的类中,例如CatalogManager或CourseManager中的parseXML方法吗?还是我们应该创建一个XMLUtil类,并在此类中创建诸如parseCatalogXMl和parseCourseXML之类的方法?
谢谢。
最佳答案
这取决于parseXML()
将要执行的操作。
情况1:如果所有parseXML()
方法都将执行相同的操作,则您应该拥有另一个具有一个parseXML()
方法的类。为什么?它避免了不必要的重复,使其更易于更新,并且更易于扩展。
情况2:如果所有parseXML()
方法都不同(主要是,不仅仅是几行),则在每个类中实现该方法将更加容易。为什么?试图将许多不同的方法组合为一种方法既复杂又丑陋。
情况3:创建具有CatalogManager
方法的CourseManager
和parseXML()
的超类。然后,如果子类需要使用此方法执行其他操作,则可以简单地重写它。
您应该使用哪一个?最终的解决方案是最可取的,因为它结合了前两种方法的优点,使您的代码保持简单,可扩展,易读和可更新。但是,如果前两种情况中的一种严格适用,则应改用这些情况。
您的类结构如下所示:
Manager // the super class, this implements parseXML().
CatalogManager // a sub class, overriding parseXML() only if it needs to.
CourseManager // same as above.
XMLUtil // this class is only necessary in case 1.
最终由您决定。没有任何一个案例比其他任何案例都快,只需选择所需的案例即可。