标签:__ getInstance self 创建对象 模式 instance 实例 单例 设计模式
什么是单例模式
通过对构造函数__contruct和析构函数__destruct的私有化,从而防止从类的外部通过new创建对象,然后在类的内部来进行实例化,并用静态变量存储到内存中,之后通过判断类是否已经被实例化,如果已经被实例化,则无需再创建对象。
使用场景
主要用于项目中经常会用到的类,比如数据库类的实例化、Redis类的实例化等
优点
1.不需要反复的创建对象实例,可以节省内存消耗
2.可以提升系统的性能
3.提供了唯一实例的受控访问,方便后期维护
代码示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class A { private static $_instance;//用来存储实例的静态变量 private function __construct() { # code... } static function getInstance() { # 判断是否存在已经实例化过的对象,这样可以保证永远只有一个被实例化过的对象php if (!self::$_instance) { # 如果没有再次进行实例化 self::$_instance = new self; echo "aa"; } return self::$_instance; } } A::getInstance();//输出aa A::getInstance();//无输出 |
标签:__,getInstance,self,创建对象,模式,instance,实例,单例,设计模式 来源: https://blog.csdn.net/Attitude_do_it/article/details/121613093
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。