PHP单示例模式详细解决方案和实例代码

PHP单示例模式详细解决方案

单例模型的概念

单例模式是整个应用程序的一个类的对象实例的设计模式。具体而言,作为一种创建对象,单例模式确保一个类只有一个实例,它实例化本身和整个系统提供实例,而不是创建一个实例的副本,它返回一个引用实例存储在单独的类。

单例模型的特点

单一案例模型的主要特点是三个私有模型:



需要保存类的唯一实例的私有静态成员变量



构造函数必须声明为私有,防止对象从外部程序新建,并失去单个案例的意义。



克隆函数必须声明为私有,以防止克隆对象被克隆。



一个公共静态方法(通常称为getInstance)必须提供访问此实例,它返回一个引用一个实例。

使用单一模式的原因和场景

在大多数应用中,PHP会有一个数据库的操作,没有一个单例模式,每个新的操作,但每一次新的消耗系统资源和大量的内存资源,每次打开和关闭数据库是数据库的一个很大的考验和浪费。所以单件模式是常用的数据库操作类。



同样,如果一个类需要有一个类来控制全局的一些配置信息,那么可以简单地实现单个示例模式。

PHP单示例模式实现

下面是一个用PHP模式实现数据库操作类的框架


< PHP
类DB {
const db_host = 'localhost;
const db_name =;
const db_user =;
const db_pwd =;
私人_db美元;
私有静态变量实例保存
私有静态_instance美元;
克隆和构造函数函数被声明为私有。
私有函数__construct(){
/ /美元-> _db = mysql_connect();
}
私有函数__clone(){
实现
}
公共静态方法实例
公共静态函数getInstance(){
如果(!(自::_instance美元是自)){
自::_instance美元=新的自我();
}

If (self:: $_instance===null) {
自::_instance美元=新的DB();
}
回归自我::_instance美元;
}
公共功能fetchall(){
实现
}
公共功能fetchrow(){
实现
}
}
例如,外部的引用类
$ db =分贝::getInstance();
>




谢谢你的阅读。我希望你能帮助你,谢谢你对这个站的支持。