<?
php
require_once
'
DB.php
'
;
class
DatabaseConnection{
public
static
function
get(){
static
$db
=
null
;
if
(
$db
===
null
){
$db
=
new
DatabaseConnection();
}
return
$db
;
}
private
$_handle
=
null
;
#
构造方法是私有的,所以不能字节使用 new 关键字实例化,这点对于单件模式至关重要
private
function
__construct(){
$dsn
=
'
mysql://root:root@localhost/test
'
;
$this
->
_handle
=
DB
::
connect(
$dsn
,
array
());
}
public
function
handle(){
return
$this
->
_handle;
}
}
print
(
"
Handle =
"
.
DatabaseConnection
::
get()
->
handle()
.
"
"
);
print
(
"
Handle =
"
.
DatabaseConnection
::
get()
->
handle()
.
"
"
);
print_r
(
get_included_files
());
#
下面是单件模式的原型,注意三个要点,
#
1. 对象必须是私有成员.
#
2.私有的构造函数
#
3. 一个公共的实例化并返回该Singleton的可被外部对象调用的成员函数
#
单件模式的事例化过程被从外部移到了内部.只有通过内部方法才能实例化对象
class
Singleton{
private
static
$instance
=
null
;
private
function
__construct(){
}
public
static
function
getInstance(){
if
(self
::
$instance
===
null
){
self
::
$instance
=
new
Singleton();
}
return
self
::
instance;
}
}
?>
PHP中的单件模式
最新推荐文章于 2025-08-20 11:37:09 发布