全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

PHP中单例模式与工厂模式详解

单例模式概念

单例模式是指整个应用中类只有一个对象实例的设计模式。

单例模式的特点

一个类在整个应用中只有一个实例

类必须自行创建这个实例

必须自行向整个系统提供这个实例

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的静态方法,然而这只是一种原则,工厂方法可以任意命名,这个静态还可以接受任意数据的参数,必须返回一个对象。

class YunSuan
{
 public $a;
 public $b;
 function Suan()
 {
  echo "对两个数进行运算";
 }
class gongchang
{ //功能 : 给一个参数,返回一个对象
 static function chanpin($name)
 {
  switch($name)
  {
   case "'+":
    return new jia();
    break;
   case "-";
    return new jian();
    break;
  }
 }
}
$a=gongchang::chanpin("+");

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# php  # 单例模式  # 工厂模式  # PHP工厂模式简单实现方法示例  # PHP设计模式之工厂模式定义与用法详解  # PHP设计模式之工厂模式实例总结  # PHP设计模式之工厂模式与单例模式  # 学习php设计模式 php实现工厂模式(factory)  # PHP工厂模式的日常使用  # 都是  # 应用程序  # 是指  # 只有一个  # 是一种  # 还可以  # 都要  # 而不  # 我用  # 很重要  # 这只  # 可以使用  # 会使  # 等各种  # 提供一个  # 命名为  # 方法来  # 至关重要  # 开发人员  # 可以任意 


相关文章: 网站插件制作软件免费下载,网页视频怎么下到本地插件?  建站之星如何快速解决建站难题?  制作网站的公司有哪些,做一个公司网站要多少钱?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  为什么Go需要go mod文件_Go go mod文件作用说明  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  招商网站制作流程,网站招商广告语?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  网站制作免费,什么网站能看正片电影?  ,sp开头的版面叫什么?  如何在IIS中配置站点IP、端口及主机头?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何快速完成中国万网建站详细流程?  教学网站制作软件,学习*后期制作的网站有哪些?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  如何通过wdcp面板快速创建网站?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  ppt制作免费网站有哪些,ppt模板免费下载网站?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何配置WinSCP新建站点的密钥验证步骤?  上海网站制作开发公司,上海买房比较好的网站有哪些?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何选择高效可靠的多用户建站源码资源?  Python文件管理规范_工程实践说明【指导】  如何在阿里云ECS服务器部署织梦CMS网站?  建站之星备案是否影响网站上线时间?  网站代码制作软件有哪些,如何生成自己网站的代码?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  如何通过二级域名建站提升品牌影响力?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  linux top下的 minerd 木马清除方法  平台云上自主建站:模板化设计与智能工具打造高效网站  ,交易猫的商品怎么发布到网站上去?  如何快速上传自定义模板至建站之星?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  手机网站制作与建设方案,手机网站如何建设?  视频网站制作教程,怎么样制作优酷网的小视频?  seo网站制作优化,网站SEO优化步骤有哪些?  如何挑选最适合建站的高性能VPS主机?  大连 网站制作,大连天途有线官网?  如何在Golang中使用replace替换模块_指定本地或远程路径  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  实现虚拟支付需哪些建站技术支撑?  宁波免费建站如何选择可靠模板与平台?  如何续费美橙建站之星域名及服务?  ,石家庄四十八中学官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。