以下为单例模式代码:
复制代码 代码如下:
<?php
class EasyFramework_Easy_Mysql{
protected static $_instance = null;
private function __construct(){
}
public static function getInstance(){
if (self::$_instance === null){
self::$_instance = new self();
}
return self::$_instance;
}
protected function __clone(){
}
}
$x = EasyFramework_Easy_Mysql::getInstance();
var_dump($x);
?>
/*
* 1.第一步:
* 既然是单例,也就是只能实例化一次,也就代表在实例化时
* 不可能使用new关键字!!!!
* 在使用new关键字时,类中的构造函数将自动调用。
* 但是,如果我们将构造函数的访问控制符设置为protected或private
* 那么就不可能直接使用new关键字了!!!
* 第二步:
* 无论protected/private修饰的属性或方法,请问在当前类的
* 内部是否可以访问?---> 可以
* 第三步:
* 现在我们根本没有办法得到对象(因为你不能使用new关键字了),
* 第四步:静态成员(包括属性或方法)在访问时,只能通过
* 类名称::属性()
* 类名称::方法()
* 第五步:如果我现在存在一个静态方法--> getInstance()
* 那么在调用时就应写成
* $object = EasyFramework_Easy_Mysql::getInstance()
* 如果,getInstance()方法可以得到唯一的一个对象
* 也就代表是所谓的单例模式了!!!
* 第六步,怎么让getInstace()只得到一个对象呢?
* 既然要得到对象,那么肯定是:
* $variabl = new ????();
* 我们又知道静态属性的值是可以所有的对象来继承的!!!
* 静态成员是属于类的,而非对象的!
* 所以:
* 第七步:声明一个静态的属性,用其存储实例化的对象
* protectd static $_instance
*
* 并且初始值为null
* 那么我在调用getInstance()方法时,只需要判断其值是否为空即可\
*
* public static function getInstance(){
* if(self::_instance === null){
* self::_instance = new self();
* }
* return self::_instance;
* }
* 在实例时,一定是这样写:
* $x = EasyFramework_Easy_Mysql::getInstance();
* 在第一时调用时,类的$_instance这个静态属性值为null,
* 那么也就代表,getInstance()方法的判断条件为真了,
* 也就意味着
* self::$_instance这个成员有了值了!!!
* 并且还返回这个值
* $y = EasyFramework_Easy_Mysql::getInstance();
* 在第二次或第N次调用时,self::$_instance已经有了值了
* 也就代表getInstance()方法的条件为假了!!!
* 也就代表其中的程序代表不可能执行了!!!
* 也就代表将直接返回以前的值了!!!
*
*
*
* */
单例模式,php设计模式
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 廖也欧《面朝大海》[Hi-Res][24bit 48kHz][FLAC/分轨][170.14MB]
- s13T1夺冠五人名单都有谁 s13T1夺冠五人名单一览
- 英雄联盟T1战队队长都有谁 T1战队所有队长介绍
- skt历届战队成员都有哪些 skt历届战队成员名单盘点
- 妙音唱片《大热唱片3》[WAV+CUE]
- 费玉清《跟着地球旋转》滚石时代经典复刻[正版原抓WAV+CUE]
- 罗文甄妮-射雕英雄传(AMCD)(限量版)[WAV+CUE]
- 《巫师4》定档2025再添佐证:参演人员曝光 老将回归
- 辣眼睛 美女COS《黑神话:悟空》比基尼版金池长老
- 外媒称PS5pro违背承诺:《蜘蛛侠2》根本没法4K60帧
- 令晴 Lynn《The Make》[320K/MP3][44.47MB]
- 令晴 Lynn《The Make》[Hi-Res][24bit 48kHz][FLAC/分轨][295.42MB]
- 雷婷《移情别恋HQⅡ》头版限量编号[低速原抓WAV+CUE][1G]
- FUNDAMENTAL.1989-感觉号渡轮【SONY】【WAV+CUE】
- 上山安娜.1986-上山安娜【EMI百代】【WAV+CUE】