我们使用spring框架,遇到了这样的情况:

我们有服务类,例如CatalogManager,CourseManager,现在希望让它们具有诸如parseXML之类的功能。

我的问题是我应该将这些方法放入每个单独的类中,例如CatalogManager或CourseManager中的parseXML方法吗?还是我们应该创建一个XMLUtil类,并在此类中创建诸如parseCatalogXMl和parseCourseXML之类的方法?

谢谢。

最佳答案

这取决于parseXML()将要执行的操作。

情况1:如果所有parseXML()方法都将执行相同的操作,则您应该拥有另一个具有一个parseXML()方法的类。为什么?它避免了不必要的重复,使其更易于更新,并且更易于扩展。

情况2:如果所有parseXML()方法都不同(主要是,不仅仅是几行),则在每个类中实现该方法将更加容易。为什么?试图将许多不同的方法组合为一种方法既复杂又丑陋。

情况3:创建具有CatalogManager方法的CourseManagerparseXML()的超类。然后,如果子类需要使用此方法执行其他操作,则可以简单地重写它。

您应该使用哪一个?最终的解决方案是最可取的,因为它结合了前两种方法的优点,使您的代码保持简单,可扩展,易读和可更新。但是,如果前两种情况中的一种严格适用,则应改用这些情况。

您的类结构如下所示:

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.


最终由您决定。没有任何一个案例比其他任何案例都快,只需选择所需的案例即可。

09-07 20:17