Есть классический singleton-класс. От него наследуются другие классы. Вопрос: должны ли эти классы точно так же реализовывать логику паттерна (т.е. через getInstance), или их-то как раз можно создавать классическим образом через new?
Если вы наследуетесь от синглетона, значит вы хотите. чтоб эти классы были тоже синглетонами. Тогда ответ очевиден - да.
Если же вы не хотите, чтоб классы были синглетонами, значит вам не надо наследоваться и тогда ответ -нет.
Как вариант, корректен ли и хорош ли с точки зрения чистоты и красоты программирования создать в родительском классе переменные по типу инстанса:
public static $_controller;
...и после, создавать их в наследуемом классе:
parent::$_controller = new self;
Чтобы таким образом иметь экземпляры подклассов, сконцентрированных в едином главном классе?
Буду благодарен за советы и рекомендации, спасибо.
Похоже вы хотите что-то страшное. Поясняю.
Обычно в ООП программировании программа строится на классах, имеющие несколько экземпляров. Этим достигается инкапсуляция, повторное использование кода и потокобезопасность. Синглетон, с одной стороны, это обычный класс, но имеющий на всю программу один экземпляр.
Чрезмерное их количество легко нарушит инкапсулированность, создаст проблемы в многопоточности и повторном использовании кода, дальше все будет только хуже.