Согласно руководству по PHP, такой класс:
abstract class Example {}
не может быть создан. Если мне нужен класс без экземпляра, например. для шаблона реестра:
class Registry {}
// and later:
echo Registry::$someValue;
будет ли хорошим стилем просто объявить класс абстрактным? Если нет, то каковы преимущества сокрытия конструктора как защищенного метода по сравнению с абстрактным классом?
Обоснование вопроса. Насколько я понимаю, это может немного злоупотреблять функциями, поскольку в руководстве абстрактные классы рассматриваются скорее как чертежи для более поздних классов с возможностью создания экземпляров.
Обновление: Прежде всего, спасибо за все ответы! Но многие ответы звучат одинаково: «Вы не можете создать экземпляр абстрактного класса, но для реестра, почему бы не использовать одноэлементный шаблон?»
К сожалению, это было более или менее точным повторением моего вопроса. В чем преимущество использования одноэлементного шаблона (также известного как сокрытие __construct()
) по сравнению с простым объявлением abstract
и отсутствием необходимости беспокоиться об этом? (Например, между разработчиками существует сильная коннотация, что abstract
классы на самом деле не используются или что-то в этом роде.)