Плохо ли иметь пакет с одним классом?
Не обязательно.Это может быть признаком того, что кто-то помешан на классификации вещей.С другой стороны, это может быть просто логическим следствием разумной общей схемы классификации, применяемой в необычном случае.
Примером последнего может быть тот, где у вас есть общий API, и несколько реализаций этого API, где каждая из реализаций состоит из нескольких классов.Но одна из этих реализаций (назовем это реализацией Null) состоит только из одного класса.
Реальный тест состоит в том, служит ли структура пакета своей цели:
Облегчает ли поиск библиотечных классов?
Упорядочивают ли пакеты классы приложения в соответствии со структурой логического модуля приложения?
Позволяет ли структура эффективно использовать видимость "пакета частной"?
Будет ли более разумным просто перенести отдельный класс в пакет утилитчто бы содержать другие случайные полезные классы?
Не обязательно.Если класс является просто еще одним «случайно полезным» листовым классом, то есть хороший повод для его перемещения.С другой стороны, если он имеет определенную функцию и не предназначен для общего использования, то лучше оставить его там, где он есть.
Лучше не слишком зацикливаться на создании элегантной упаковки.иерархии, или с перенастройкой их, когда они оказываются не такими элегантными (или полезными), как вы сначала подумали.Обычно есть более важные вещи, такие как реализация функциональности, написание тестов, написание документации и т. Д.