摘要:总体来说设计模式分为三大类创建型模式共五种工厂方法模式抽象工厂模式单例模式建造者模式原型模式。优点一实例控制单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。
总体来说设计模式分为三大类:
创建型模式---共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式---共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式---共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式
下面,简单介绍几种设计模式:
单例模式
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。
优点:
一、实例控制:单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。
二、灵活性:因为类控制了实例化过程,所以类可以灵活更改实例化过程。
缺点
一、开销
虽然数量很少,但如果每次对象请求引用时都要检查是否存在类的实例,将仍然需要一些开销。可以通过使用静态初始化解决此问题。
二、可能的开发混淆
使用单例对象(尤其在类库中定义的对象)时,开发人员必须记住自己不能使用new关键字实例化对象。因为可能无法访问库源代码,因此应用程序开发人员可能会意外发现自己无法直接实例化此类。
config = $config; echo "我已经被实例化了-"; } //防止克隆对象 private function __clone(){} public static function getInstance($config){ //判断$instance是否是Log的对象 //没有则创建则创建 if (!self::$instance instanceof self) { self::$instance = new self($config); } return self::$instance; } public function getName(){ echo $this->config; } } $db1 = Log::getInstance("实例化1"); $db1->getName(); echo "
"; $db2 = Log::getInstance("实例化2"); $db2->getName(); ?> 运行结果: 我已经被实例化了-实例化1 实例化2
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29903.html
摘要:接下来会对其中五个比较常见的运行模式进行说明。模式是目前主流的服务运行模式,拥有高效可靠的性能,推荐大家使用。由于微软的排他性,只能运行于环境。 SAPI 这里所说的 PHP 运行模式, 其实指的是 SAPI (Server Application Programming Interface,服务端应用编程端口 )。SAPI 为 PHP 提供了一个和外部通信的接口, PHP 就是通过这...
摘要:当客户端请求到达时,进程管理器选择并连接到一个解释器。子进程完成处理后将标准输出和错误信息从同一连接返回。子进程接着等待并处理来自进程管理器运行在中的下一个连接。 目前常见的4种PHP运行模式 CGI通用网关接口模式 FAST-CGI模式 CLI命令行模式 模块模式 运行模式 CGI通用网关接口模式 每有一个用户请求,都会先要创建cgi的子进程,然后处理请求,处理完后结束这个子进程...
摘要:话说当下一共有种运行模式,分别是和模块模式。使用,全称进程管理器进行管理。工作原理启动时载入进程管理器进程管理器自身初始化,启动多个解释器进程并等待来自的连接当客户端请求到达时,进程管理器选择并连接到一个解释器。 我们知道 workerman 程序需要在php-cli模式下运行,也就是命令行模式,这块我们有必要了解一下。 话说PHP当下一共有4种运行模式,分别是CGI、FastCGI、...
阅读 2913·2021-11-23 09:51
阅读 1625·2021-10-15 09:39
阅读 1034·2021-08-03 14:03
阅读 2831·2019-08-30 15:53
阅读 3404·2019-08-30 15:52
阅读 2444·2019-08-29 16:17
阅读 2648·2019-08-29 16:12
阅读 1619·2019-08-29 15:26