PHP中单例模式与工厂模式详解
发布:smiling 来源: PHP粉丝网 添加日期:2018-08-02 09:52:54 浏览: 评论:0
单例模式概念
单例模式是指整个应用中类只有一个对象实例的设计模式。
单例模式的特点
一个类在整个应用中只有一个实例
类必须自行创建这个实例
必须自行向整个系统提供这个实例
php中使用单例模式的原因
我用php大部分操作都是和各种数据库打交道,包括mysql,redis,memcache等各种关系型和非关系型数据库,所以一个应用中会 存在大量连接数据库的操作,如果不用单例模式,那每次都要new操作,但是每次new都会消耗大量的内存资源和系统资源,而且每次打开和关闭数据库连接都 是对数据库的一种极大考验和浪费。
需要一个保存类的唯一实例的静态成员变量(通常$instance为私有变量)
构造函数和克隆函数必须声明为私有的,为了防止外部程序new类从而失去单例模式意义
必须提供一个访问这个实例的公共静态方法,从而返回唯一实例的一个引用
- //设计模式
- //单例模式 都是使用同一个对象
- //class Ren
- //{
- // public $name;
- // private static $dx; //存储对象
- //
- // private function __construct()
- // {
- //
- // }
- //
- // public static function DuiXiang()
- // {
- // if(empty(self::$dx))
- // {
- // self:;$dx=new Ren();
- // }
- // return self::$dx;
- // }
- //}
- //
- //$r= Ren::DuiXiang();
- //把构造函数变为私有
- //做了一个方法来间接造对象
- //在该方法里面加限制
工厂类
是指包含一个专门用来创建其他对象的方法的类,工厂类在多态性编程实践中是至关重要的,它允许动态的替换类,修改配置,通常会使应用程序更加灵活,熟练掌握工厂模式高级PHP开发人员是很重要的。
工厂模式通常用来返回符合类似接口的不同的类,工厂的一种常见用法就是创建多态的提供者,从而允许我们基于应用程序逻辑或者配置设置来决定应实例化哪一个类,例如,可以使用这样的提供者来扩展一个类,而不需要重构应用程序的其他部分,从而使用新的扩展后的名称 。
通常,工厂模式有一个关键的构造,根据一般原则命名为Factory的静态方法,然而这只是一种原则,工厂方法可以任意命名,这个静态还可以接受任意数据的参数,必须返回一个对象。
- classYunSuan
- {
- public$a;
- public$b;
- functionSuan()
- {
- echo"对两个数进行运算";
- }
- classgongchang
- {//功能 : 给一个参数,返回一个对象
- staticfunctionchanpin($name)
- {
- switch($name)
- { //phpfensi.com
- case"'+":
- returnnewjia();
- break;
- case"-";
- returnnewjian();
- break;
- }
- }
- }
- $a=gongchang::chanpin("+");
Tags: PHP单例模式 PHP工厂模式
- 上一篇:php实现文件与16进制相互转换的方法示例
- 下一篇:PHP常用的三种设计模式
相关文章
- ·php单例模式笔记(2014-10-22)
- ·PHP单例模式实例浅析(2015-04-11)
- ·PHP设计模式-单例模式学习笔记(2015-12-10)
- ·PHP中数据库单例模式的实现代码分享(2021-04-07)
- ·php实现singleton()单例模式实例(2021-04-24)
- ·浅析php单例模式(2021-04-30)
- ·php单例模式示例分享(2021-05-13)
- ·php设计模式之单例模式实例分析(2021-05-14)
- ·PHP单例模式详细介绍(2021-06-06)
- ·php面向对象值单例模式(2021-07-31)
- ·PHP单例模式是什么 php实现单例模式的方法(2021-08-05)
- ·PHP中单例模式的使用场景与使用方法讲解(2021-11-13)
- ·PHP设计模式之单例模式定义与用法分析(2021-11-14)
- ·PHP工厂模式、单例模式与注册树模式实例详解(2021-11-24)
- ·php设计模式之单例模式用法经典示例分析(2021-12-19)
- ·浅析php工厂模式(2021-04-30)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)