Создание личного инструментария

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

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

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

java,toolbox,

3

Ответов: 3


3 принят

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

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


0

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

Способ 1:

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

Способ 2:

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

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

JRH.


0

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

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

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

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

Java, набор инструментов,
Похожие вопросы
Яндекс.Метрика