制作个人编程工具箱

时间:2009-06-17 13:43:19

标签: java toolbox

最近我一直在考虑为自己在java中创建一种“工具箱”。它将由经常使用的标准算法和数据结构组成,但实施起来很麻烦。 (我在想图表,树木等)

最好的方法是什么?我在考虑使用泛型或使用抽象类。这样我可以让任何想要使用这些方法的对象只提供一个getGraphData()方法或类似的方法。

我认为泛型可能会更好,因为抽象类会迫使我继承它,这可能会成为问题。

3 个答案:

答案 0 :(得分:3)

这称为图书馆......

通用内容应该在Java库中。如果您想要的某些内容丢失,您可以尝试其他库,例如Google Collections。您可能还需要特定于域的库。

答案 1 :(得分:0)

有两种方法:

方式1:

  1. 创建一个图表
  2. 在Graph类中创建方法,每个方法都对应于您的算法。
  3. 方式2:

    1. 创建一个类Graph(纯粹的数据结构)
    2. 创建一个类算法
    3. 子类算法,用于定义您的每个新算法。
    4. 当然,最好是看一下STL算法并以类似的方式对图算法进行建模。您甚至可以开源数据结构和关联算法。通过这种方式,社区可以处理更新的算法,效率考虑因素,与现有图书馆的整合等。

      JRH。

答案 2 :(得分:0)

大多数情况下,人们应该使用由真正知道他们正在做什么的人编写的预先存在的库 - 这些库已经过全面测试,并且使用高效算法实现表现不错。

然而,如果一个人想要创建他或她自己的图书馆,我会说尝试模仿最好的 - 看看Java CollectionsGoogle Collections是如何设计的。查看提供的接口类型(ListMap等)以及存在哪种抽象类和实现。

然后,如果是出于教育目的,请继续编写自己的实现。它应该是有趣和令人兴奋的,绝对具有挑战性尝试查看行为是否符合预期 - 编写测试以确保涵盖典型用法和边缘情况。

但是,我建议不要将它用于教育用途以外的实际用途。在学校里犯错会并不是什么大不了的事,但在现实世界里,这是一个完全不同的故事。