PHPのマニュアルによると、次のようなクラスです。
abstract class Example {}
インスタンス化できません。インスタンスのないクラスが必要な場合、たとえばレジストリパターンの場合:
class Registry {}
// and later:
echo Registry::$someValue;
クラスを単純に抽象として宣言するのは良いスタイルと見なされますか?そうでない場合、抽象クラスと比較して、コンストラクターを保護されたメソッドとして非表示にすることの利点は何ですか?
質問の理由:私が見る限り、マニュアルでは抽象クラスをインスタンス化の可能性がある後のクラスの青写真のように参照しているため、機能が少し乱用される可能性があります。
更新:まず第一に、すべての答えに感謝します!しかし、多くの答えはまったく同じように聞こえます。「抽象クラスをインスタンス化することはできませんが、レジストリの場合は、シングルトンパターンを使用しないのはなぜですか?」
残念ながら、それは多かれ少なかれ私の質問の繰り返しでした。シングルトンパターン(別名非表示)を使用することの利点は、それを__construct()
宣言するだけでそれabstract
について心配する必要がないことと比較して何ですか?abstract
(たとえば、クラスが実際に使用されていないなど、開発者間の強い意味合いです。)