Подтвердить что ты не робот

Абстрактный класс против частного конструктора

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

  • сделать класс abstarct.
  • использовать частный конструктор.

Какое из двух способов лучше?

4b9b3361

Ответ 1

Вы должны пойти с конструктором private.

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

from Пункт 4 Эффективной java:

Попытка принудительного применения неинвертируемости путем создания абстрактного класса не работает. Класс может быть подклассом, а подкласс - экземпляром. Кроме того, он вводит пользователя в заблуждение, думая, что класс был предназначен для наследования