根据PHP 手册,这样的类:
abstract class Example {}
无法实例化。如果我需要一个没有实例的类,例如注册表模式:
class Registry {}
// and later:
echo Registry::$someValue;
简单地将类声明为抽象类会被认为是一种好的风格吗?如果不是,与抽象类相比,将构造函数隐藏为受保护方法有什么好处?
问的理由:据我所知,它可能有点滥用功能,因为手册提到抽象类更像是稍后具有实例化可能性的类的蓝图。
更新:首先,感谢所有的答案!但是许多答案听起来很相似:“你不能实例化一个抽象类,但是对于一个注册表,为什么不使用单例模式呢?”
不幸的是,这或多或少完全重复了我的问题。与仅声明它而不必担心这一点相比,使用单例模式(又名隐藏)有什么优势?(例如,开发人员之间的一个强烈含义是,类实际上并没有被使用。)__construct()
abstract
abstract