重用Java方法的最佳方法

时间:2010-05-29 23:18:53

标签: java code-reuse

我正在学习Java和OOP,并且已经在Project Euler进行练习(很棒的网站顺便说一句)。

我发现自己一遍又一遍地做同样的事情,比如:

  • 检查整数是否为素数/生成素数
  • 生成Fibonacci系列
  • 检查数字是否为回文

存储和调用这些方法的最佳方法是什么?我应该编写一个实用程序类然后import吗?如果是,我是否会导入.class文件或.java来源?我正在使用纯文本编辑器和Mac终端。

谢谢!

4 个答案:

答案 0 :(得分:5)

您可以将方法放入实用程序类,然后import该类(不是文件!)。

import my.useful.UtilityClass;

...
boolean isPrime = UtilityClass.isPrime(2);

当事情开始变得更复杂,并且你想在多个项目中重用你的东西时,你可以将它放入一个jar中并将该jar添加到项目中。然后你可以import并以与上面相同的方式使用该课程。

答案 1 :(得分:1)

UtilityClass这个想法很好,但它也让您有机会练习TDD。对于新的Euler问题,请在UtilityClass中创建一个空方法,以解决该问题。然后制作一堆使用这种新方法的JUnit tests,并依赖它是正确的。测试都将失败(或者他们应该,因为你还没有编写解决方案!)

现在解决欧拉问题并观察测试通过!如果您想稍后重用代码,单元测试将在重构期间保持正确,并为您可能找到的错误添加回归案例。

答案 2 :(得分:1)

使用您的答案创建目录树。我/数学/ *。java的。您应该为该类指定包my.math。为不同的问题集创建不同的类; Primes.java,Fibonacci.java等。如果您已经解决了一次问题,请不要再解决,除非您的解决方案被破坏。

将my / math上方的目录添加到类路径(java -cp目录)或jar目录中,并将其添加到类路径中。

这样的图书馆是成功项目的命脉。创建和使用解决方案库(该语言尚未具有库)解决了许多项目问题。尽可能使用可用的库。

答案 3 :(得分:0)

为什么不创建一个jar文件,一个自己常用的组件库?如果编译java代码,只需在类路径中包含实用程序存档。