标签:php oop singleton abstract-class
我正在研究一个简单的抽象数据库类.在我对这个类的使用中,我想要一些实例是一个单例.我想的是有一个不是单例的抽象类,然后将它扩展到另一个单例的抽象类中.这可能吗?推荐的?
编辑:我想要两个几乎完全相同的摘要,除了一个是单身.所以唯一的区别是,一个将具有另一个的所有功能,但是将具有使其表现得像单身的其他属性和方法.
我想为此设置一个基类代码库,因此当我进行更改时,我不必保持两个文件同步.
解决方法:
在我做事的方式中,我相信抽象单身人士没有用处.这是因为,
1)你想要成为单身人士的是你在应用程序中实例化的最后一个类,无论它是一个库,模型,控制器还是视图而不是抽象.
2)添加单例方法很简单,可以用8行编写.见下文.
protected static $_instance;
public static function getInstance()
{
if (!isset(self::$_instance)) {
self::$_instance = new self();
}
self::$_instance;
}
3)PHP 5.3以下版本不支持后期静态绑定.这将导致实例化抽象类而不是继承它的最终类,并且将无法按预期运行,正如Gordon和nuqqsa已经提到的那样.因此,为了向后兼容,最好避免它.
标签:php,oop,singleton,abstract-class 来源: https://codeday.me/bug/20190627/1300047.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。