如何在服务类和util类之间拆分app函数?

时间:2012-03-14 03:00:44

标签: java spring oop

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

我们有服务类,例如CatalogManager,CourseManager,我们现在想让他们拥有像parseXML这样的函数。

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

感谢。

1 个答案:

答案 0 :(得分:1)

这取决于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.

这是你最终的决定。没有任何一个案例比其他案件更快,只需选择你想要的案件。