当前位置: 首页 > 后端技术 > PHP

PHP设计模式(四)单例(Singleton)

时间:2023-03-29 20:05:11 PHP

1.什么是单例设计模式单例模式,也叫单例模式,是一种常用的软件设计模式。应用该模式时,单例对象的类必须保证只有一个实例存在。2、单例模式的技巧使用$_instance私有变量保存类唯一实例化的对象;设计一个getInstancepublic函数,获取类的唯一实例;防止用户用new、clone进行实例化,构造两个__construct、__clone私有函数;3、单例模式的应用场景  数据库设计,我们在发送请求的时候可能需要访问不同的表,那么如果每次访问都创建一个新的实例,势必会造成资源的浪费。所以使用单例模式可以很好的节省资源。SingletonclassclassDataBase{/***静态完成变量,保存全局实例*/privatestatic$_instance=null;/***测试变量,存放日志信息*/privatestatic$_msg=null;/***私有构造方法,防止对象外部实例化*/privatefunction__construct(){$connect="连接数据库操作";}/***私有clone方法,防止外键克隆对象*/privatefunction__clone(){}/***静态方法,对外获取实例的唯一接口*@return对象返回唯一实例对象*/publicstaticfunctiongetInstance(){if(!self::$_instance){self::$_instance=newDataBase();self::$_msg="这是一个新对象".“
”;}else{self::$_msg="这是一个旧对象".“
”;}returnself::$_instance;}publicfunctionlog(){echoself::$_msg;}}客户端测试代码$dbA=DataBase::getInstance();$dbA->日志();$dbB=数据库::getInstance();$dbB->日志();$dbC=数据库::getInstance();$dbC->日志();输出:这是一个新对象这是一个旧对象这是一个旧对象“Object”?,程序员怎么可能有对象!~参考系列源码地址WilburXu/design_pattern系列目录PH??P设计模式概述PHP设计模式(一)简单工厂模式(SimpleFactoryForPHP)PHP设计模式(二)工厂方法模式(FactoryMethod)PHP设计模式(三)抽象工厂模式(抽象工厂)PHP设计模式(四)单例模式(Singleton)