Мне необходимео от какого-то класса A насследоавть класс B, причем класс B надо сделать синглтоном. Проблема в том, что по ученному в синглтоне констркутор должен быть private, но в таком случае не получится унаследовать
класс A с конструктором public, с другой стороны я не могу сделать конструктор класса A private так как от него могут наследоваться другие классы (не синглтоны). Мне пришла в голову идея, сделать конструктор класса A protected,
в таком случае в наследниках НЕ-синглтонах конструкртоы можно переписать как public, а в наследнике-синглтоне оставить protected чтобы была гарантия невозможности создания класса из вне. Но на каком-то форуме читал, что protected конструктор в синглтоне - очень плохо, почему, если с конструктором protected невозможно создать новукю копию объекта из вне ?
class A{
protected function __construct(){
}
class B extends A{
private static $instance = null;
public static function getInstance(){
if(self::$instance === null){
self::$instance = new self();
}
$inst = self::$instance;
return $inst;
}
private function __clone(){
}
protected function __construct(){
}
}