java - 如何在服务类和 util 类之间拆分应用程序功能?

标签 java spring oop

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

我们有服务类,例如 CatalogManager、CourseManager,我们现在想让它们具有像 parseXML 这样的功能。

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

谢谢。

最佳答案

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

情况 1: 如果所有 parseXML() 方法都要做同样的事情,那么您应该拥有另一个具有一个 parseXML( ) 方法。为什么?它避免了不必要的重复,使更新更容易,并且更容易扩展。

情况 2: 如果所有 parseXML() 方法都不同(主要是,不仅仅是几行),那么在每堂课。为什么?尝试将多种不同的方法组合成一种方法既复杂又丑陋。

情况 3: 创建具有 parseXML() 方法的 CatalogManagerCourseManager 的父类(super class)。然后,如果子类需要用这个方法做一些不同的事情,它可以简单地重写它。

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

你的类结构将是这样的:

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.

最终决定权在你。没有一种情况比其他情况更快,只需选择您想要的即可。

关于java - 如何在服务类和 util 类之间拆分应用程序功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9695327/

相关文章:

php - 调用通用静态类方法 php

java - zxing Intent "google goggles"无法识别条形码

java - Graphics2D.draw(Shape) 方法不准确

java - 安装 rJava 时出错 |生成文件.all :38: recipe for target 'libjri.so' failed

java - Spring云函数Cosumingrabbitmq队列-Dispatcher没有 channel 订阅者

java - GenericFilterBean vs OncePerRequestFilter 何时分别使用?

java - 计算列表奇数的平均值时出现问题

java - Spring Jdbc 的 Oracle Sql 函数返回类型

python - 国际象棋程序OO设计

PHP 静态方法/单例模式