我们使用spring框架并遇到了这样的情况:
我们有服务类,例如CatalogManager,CourseManager,我们现在想让他们拥有像parseXML这样的函数。
我的问题是我应该将这些方法放入每个单独的类中,例如CatalogManager或CourseManager中的parseXML方法吗?或者我们应该创建一个XMLUtil类并在这个类中创建parseCatalogXMl和parseCourseXML等方法?
感谢。
答案 0 :(得分:1)
这取决于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.
这是你最终的决定。没有任何一个案例比其他案件更快,只需选择你想要的案件。