重用Java方法的最佳方法
我正在学习Java和OOP,并且已经在Project Euler进行练习(很棒的站点顺便说一句)。
我发现自己一遍又一遍地做着很多相同的事情,比如:
- 检查整数是否为素数/生成素数
- 生成Fibonacci系列
- 检查一个数字是否是回文
存储和调用这些方法的最佳方法是什么? 我应该编写一个实用程序类然后import
它吗? 如果是这样,我是否导入.class
文件或.java
源? 我正在使用纯文本编辑器和Mac终端。
谢谢!
您可以将方法放入实用程序类,然后import
该类(而不是文件!)。
import my.useful.UtilityClass; ... boolean isPrime = UtilityClass.isPrime(2);
当事情变得越来越复杂,并且你想在多个项目中重用你的东西时,你可以将它放入一个jar中并将该jar添加到项目中。 然后您可以像上面一样import
和使用该类。
UtilityClass
想法很好,但它也让你有机会练习TDD 。 对于新的Euler问题,在UtilityClass
中创建一个空方法,您将解决该问题。 然后制作一堆使用这种新方法的JUnit测试并依赖它是正确的。 测试都会失败(或者他们应该,因为你还没有编写解决方案!)
现在解决欧拉问题并观察测试通过! 如果您想稍后重用代码,unit testing将在重构期间保持正确,并为您可能找到的错误添加回归案例。
使用您的答案创建目录树。 我/数学/ *。java的。 您应该为该类指定包my.math。 为不同的问题集创建不同的类; Primes.java,Fibonacci.java等。如果您已经解决了一次问题,请不要再解决,除非您的解决方案被破坏。
将my / math上面的目录添加到类路径(java -cp目录)或jar目录并将其添加到类路径中。
像这样的图书馆是成功项目的生命线。 创建和使用解决方案库(该语言尚未具有库)解决了许多项目问题。 尽可能使用可用的库。
为什么不创建一个jar文件,一个自己的库,经常使用的组件? 如果编译java代码,只需在类路径中包含实用程序存档。