Створення бібліотеки класів яка містить алгоритми сортування - stack overflow російською

Невідомо, що саме мається на увазі під бібліотекою класів (краще це уточнити у викладача). Цілком можна було б обійтися одним класом з набором статичних методів, кожен з яких сортує певним алгоритмом. Але більш «об'єктно-орієнтовано» буде ввести інтерфейс абстрактного алгоритму сортування (щось на зразок патерну «стратегія») і реалізувати його кілька разів:

І так далі. Такі алгоритми було б зручніше використовувати. Наприклад, якщо який-небудь більш складний код використовує в своїй роботі сортування, він може приймати на вхід об'єкт SortAlgorithm і сортувати, не піклуючись про те, який саме алгоритм там працює:

А користувач вже міг би передавати конкретний алгоритм.

У бібліотеці, звичайно, не потрібні методи main (). а також не потрібен ніякий код, який виводить числа (методи printNumbers ()). Ну і добре б JavaDoc написати перед методами. Раз це бібліотека, мається на увазі, що користуватися методами може і хтось інший і добре б, щоб він знав, що методи роблять.

Допоміжні методи ви абсолютно правильно оголосили private. так і залишайте в бібліотеці.

Взагалі створення по-справжньому дорослою відкритою Java-бібліотеки включає:

  • Автоматичну складання (Maven, Gradle і т. Д.)
  • Хороше покриття юніт-тестами
  • Публікація проекту в системі контролю версій (GitHub, BitBucket і т. Д.)
  • Публікація в Maven Central
  • Підключення до системи безперервної інтеграції (Jenkins, Travis і т. Д.)
  • Тюторіали, приклади, хороша документація, уважне ставлення до користувачів

відповідь дан 13 Вересня '15 о 13:09