在两个不相关的Java类中使用函数

时间:2011-01-27 13:04:30

标签: java oop

我的Java项目中有两个类彼此不“相关”(一个继承自Thread,一个是自定义对象。但是,它们都需要使用相同的函数,它需要两个String参数和soem文件写的东西。我最好把这个函数放在哪里?代码重复很难看,但我也不想为这个函数创建一个全新的类。

我觉得我错过了一个非常明显的方法来做到这一点,但我想不出一个简单的方法。

5 个答案:

答案 0 :(得分:1)

创建一个Utility类并将所有常用实用程序方法放入其中。

答案 1 :(得分:1)

听起来像只有静态函数的FileUtils类的理想候选者。看看SwingUtilities,看看我在说什么。

答案 2 :(得分:1)

  

[一个函数],它接受两个String参数并执行soem文件写入东西

正如其他人所建议的那样,您可以将该函数放在一个单独的类中,然后您的现有类就可以访问它了。其他人建议调用类Utility或类似的东西。我建议以这种方式命名该类。我的反对是双重的。

  • 可以预期程序中的所有代码都是有用的。也就是说,它有实用程序,因此这样的名称不会传达有关该类的信息。
  • 可能有人认为Utility是一个合适的名称,因为该类是其他人使用的。但在这种情况下,该名称描述了该类的使用方式,而不是所做的。类应该按照它们的作用而不是它们的使用方式来命名,因为它们的使用方式可以在不改变它们的情况下改变。考虑到Java有一个string类,可用于保存名称,描述或文本片段。这个类用“字符串”来做事情;它可能会也可能不会用于名称,因此string是一个很好的名称,但name不是。

所以我建议给那个班级一个不同的名字。描述它对文件进行操作的东西,或描述文件格式的东西。

答案 3 :(得分:0)

你可以在其中一个类中使函数为static,然后在另一个类中引用静态方法,假设没有使用的变量需要已经实例化对象。

或者,创建另一个类来存储所有静态方法。

答案 4 :(得分:0)

回答问题的第一部分 - 据我所知,在java中不可能有一个独立的函数; ergo - 函数必须进入一个类。

第二部分更有趣 - 实用工具类是个好主意。更好的想法可能是扩展KitsuneYMG所写的内容;让你的班级负责自己的阅读/写作。 然后将读/写操作委托给实用程序类。这允许您的读/写操作独立于其余的文件操作。

只是我的2c(+: