数码资讯
PHP是实现单模式的最安全的方法。
单例模型作为一种常见的设计模式,应用非常广泛,如何设计一个案例是最好的呢 我们通常写这篇文章,而且大多数可以在网上搜索的例子都是一样的。 复制代码代码如下所示: 班上的一个 { 保护静态_instance美元= null; 保护功能__construct() { / /禁止新的实例 } 保护功能__
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
单例模型作为一种常见的设计模式,应用非常广泛,如何设计一个案例是最好的呢
我们通常写这篇文章,而且大多数可以在网上搜索的例子都是一样的。
复制代码代码如下所示:
班上的一个
{
保护静态_instance美元= null;
保护功能__construct()
{
/ /禁止新的实例
}
保护功能__clone(){
/ /禁止克隆
}
公共函数getInstance()
{
如果(自::_instance美元= null){
自::_instance美元=新的自我();
}
回归自我::_instance美元;
}
}
B类扩展
{
保护静态_instance美元= null;
}
$ =一:getInstance();
$ B = B::getInstance();
var_dump($ = $ B);
设置为私人的__construct方法,以确保这类不被他人。但这种方法的明显的问题是,不能将代码重用。例如,我们在一个类继承:
复制代码代码如下所示:
B类扩展
{
保护静态_instance美元= null;
}
$ =一:getInstance();
$ B = B::getInstance();
var_dump($ = $ B);
上述代码将输出:
复制代码代码如下所示:
布尔(真的)
问题是,对自我,对自我的参考是决定当类的定义,即继承了B,和他的自我参照仍然指出:解决这一问题,对后来的静态绑定的特点介绍了PHP 5.3.simply来说,静态方法或变量通过static关键字访问。与自我不同,静态的引用是由运行时决定的,因此我们简单地重写我们的代码,使单模式可以被重用。
复制代码代码如下所示:
C类
{
保护静态_instance美元= null;
保护功能__construct()
{
}
保护功能__clone()
{
/ /禁止克隆
}
公共函数getInstance()
{
如果(静态::_instance美元= null){
静态::_instance美元=新的静态;
}
返回静态::_instance美元;
}
}
D类扩展C
{
保护静态_instance美元= null;
}
C = C:美元:getInstance();
美元D = D:getInstance();
var_dump($ C = $);
上述代码输出:
复制代码代码如下所示:
Bool(假)
这样,简单的继承和_instance美元变量重新初始化可以实现单例模式。值得注意的是,以上方法只能用在PHP 5.3。对于PHP的以前的版本,写一个getInstance()的每一个实例方法。
需要提醒的是,在PHP中不单实例模式有线程安全问题像java,但是状态类,我们应该使用单例模式与照顾。单模式的档次与PHP运行的整个生命周期相关,也是内存开销。
我们通常写这篇文章,而且大多数可以在网上搜索的例子都是一样的。
复制代码代码如下所示:
班上的一个
{
保护静态_instance美元= null;
保护功能__construct()
{
/ /禁止新的实例
}
保护功能__clone(){
/ /禁止克隆
}
公共函数getInstance()
{
如果(自::_instance美元= null){
自::_instance美元=新的自我();
}
回归自我::_instance美元;
}
}
B类扩展
{
保护静态_instance美元= null;
}
$ =一:getInstance();
$ B = B::getInstance();
var_dump($ = $ B);
设置为私人的__construct方法,以确保这类不被他人。但这种方法的明显的问题是,不能将代码重用。例如,我们在一个类继承:
复制代码代码如下所示:
B类扩展
{
保护静态_instance美元= null;
}
$ =一:getInstance();
$ B = B::getInstance();
var_dump($ = $ B);
上述代码将输出:
复制代码代码如下所示:
布尔(真的)
问题是,对自我,对自我的参考是决定当类的定义,即继承了B,和他的自我参照仍然指出:解决这一问题,对后来的静态绑定的特点介绍了PHP 5.3.simply来说,静态方法或变量通过static关键字访问。与自我不同,静态的引用是由运行时决定的,因此我们简单地重写我们的代码,使单模式可以被重用。
复制代码代码如下所示:
C类
{
保护静态_instance美元= null;
保护功能__construct()
{
}
保护功能__clone()
{
/ /禁止克隆
}
公共函数getInstance()
{
如果(静态::_instance美元= null){
静态::_instance美元=新的静态;
}
返回静态::_instance美元;
}
}
D类扩展C
{
保护静态_instance美元= null;
}
C = C:美元:getInstance();
美元D = D:getInstance();
var_dump($ C = $);
上述代码输出:
复制代码代码如下所示:
Bool(假)
这样,简单的继承和_instance美元变量重新初始化可以实现单例模式。值得注意的是,以上方法只能用在PHP 5.3。对于PHP的以前的版本,写一个getInstance()的每一个实例方法。
需要提醒的是,在PHP中不单实例模式有线程安全问题像java,但是状态类,我们应该使用单例模式与照顾。单模式的档次与PHP运行的整个生命周期相关,也是内存开销。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。