Создание личного инструментария программирования - PullRequest
3 голосов
/ 17 июня 2009

В последнее время я думал о создании своего рода «ящика с инструментами» для себя в Java. Он будет состоять из стандартных алгоритмов и структур данных, которые часто используются, но это трудно реализовать. (Я думаю, графики, деревья и т. Д.)

Каков наилучший способ сделать это? Я думал о том, чтобы использовать дженерики или абстрактный класс. Таким образом, я мог получить любой объект, который хотел бы использовать методы, просто предоставив метод getGraphData () или что-то подобное.

Я думаю, что дженерики могут быть лучше, потому что абстрактный класс заставит меня наследовать от него, что может стать проблематичным.

Ответы [ 3 ]

3 голосов
/ 17 июня 2009

Это называется библиотека ...

Материал общего назначения должен находиться в библиотеке Java. Если чего-то не хватает, попробуйте дополнительные библиотеки, такие как Google Collections. Вам также могут потребоваться доменные библиотеки.

0 голосов
/ 17 июня 2009

В большинстве случаев следует использовать уже существующие библиотеки, написанные людьми, которые действительно знают, что они делают - эти библиотеки были тщательно протестированы и реализованы с использованием эффективных алгоритмов для достижения хороших результатов. производительность.

Однако, если кто-то собирается создавать свои собственные библиотеки, я бы сказал, попытайтесь эмулировать лучшее - взгляните на Коллекции Java и Коллекции Google разработаны. Посмотрите, какие интерфейсы предоставляются (List, Map и т. Д.) И какие существуют абстрактные классы и реализации.

Тогда, если это для образовательных целей, продолжайте и напишите свои собственные реализации. Это должно быть весело, увлекательно и определенно интересно. Попробуйте проверить, соответствует ли поведение ожидаемому - напишите тесты, чтобы убедиться, что они охватывают типичное использование и крайние случаи.

Однако я бы рекомендовал не использовать его для реального использования, кроме использования в образовательных целях. В школе делать ошибки не сложно, но в реальной жизни это совсем другая история.

0 голосов
/ 17 июня 2009

два способа сделать это:

Путь 1:

  1. Создание класса Graph
  2. Создание методов в классе Graph, каждый из которых соответствует вашему алгоритму.

Путь 2:

  1. Создание класса Graph (чисто структура данных)
  2. Создание класса Алгоритм
  3. Алгоритм подкласса для определения каждого вашего нового алгоритма.

Конечно, было бы лучше, если бы вы посмотрели на алгоритмы STL и смоделировали алгоритмы вашего графа аналогичным образом. Вы даже можете открыть исходные тексты ваших структур данных и связанных алгоритмов. Таким образом, сообщество может позаботиться о новых алгоритмах, соображениях эффективности, интеграции в / с существующими библиотеками и т. Д.

JRH.

...