PHP最常用的2种设计模式工厂模式和单例模式
1.工厂模式
主要作用是降低耦合度。
abstract class Operation{abstract public function getValue($num1,$num2);public function getAttr(){return 1;} } class Add extends Operation{public function getValue($num1, $num2){ return $num1+$num2;} }class Sub extends Operation{public function getValue($num1, $num2){return $num1-$num2;} }class Factory{public static function CreateObj($operation){switch ($operation){case '+': return new Add();case '-': return new Sub();}} }$Op=Factory::CreateObj('-'); echo $Op->getValue(3, 6);
用在真正开发中一般当做数据库选择类。
2单例模式
单例是因为一个就足够了,多了浪费。比如邮局里的电话簿只有一本,有需要的人拿来看,没有必要每个人要查的时候工作人员就拿一本出来,看完了再回收。
class Mysql{public static $conn;public static function getInstance(){if (!self::$conn){new self();return self::$conn;}else {return self::$conn;}}private function __construct(){ self::$conn= "mysql_connect:";// mysql_connect('','','') }public function __clone(){trigger_error("Only one connection");} }echo Mysql::getInstance();echo Mysql::getInstance();
实际中用作数据库连接类和工厂模式一起使用,根据参数调用单例模式,可以提高资源使用效率。
转载于:https://www.cnblogs.com/steptoupper/archive/2012/08/10/2632322.html
PHP最常用的2种设计模式工厂模式和单例模式相关推荐
- 23种设计模式-工厂模式
23种设计模式-工厂模式 前言: [我们为什么需要使用工厂模式?] /*** 在使用工厂模式之前,我们要创建 实现了相同接口的对象 都需要直接new(),如下* */@Testpublic void ...
- 23种设计模式——工厂模式
文章目录 23种设计模式--工厂模式 1.工厂模式概述 2.简单工厂模式 2.1.简单工厂模式的优缺点 2.2.简单工厂模式的结构 2.3.简单工厂模式的实现 3.工厂方法模式 3.1.工厂方法模式的 ...
- Spring常用到的几种设计模式--工厂模式
一.工厂模式 工厂模式核心思想:只关心结果,隐藏复杂的过程 二.简单的工厂模式 BaoMa /** Copyright (C), 2013-2019, 天津大海云科技有限公司*/ package co ...
- 23种设计模式——工厂模式+适配器模式实战
一.简介 业务需求,需要对不同的浏览器返回不同的url地址. 例如: Chrom浏览器返回:'http://www.chrom.com', IE浏览器返回:'http://www.ie.com' 二. ...
- 慕课网----大话PHP设计模式 三(三种基本设计模式-工厂模式,单例模式,注册树模式)
1)工厂模式: 工厂方法或者类生成对象,而不是代码中直接new 多用来生成对象 好处.如果很多个文件都使用了这个类的话,如果修改需要去每个文件下都进行修改,而使用工厂模式的话,则只用在类里面修改创建方 ...
- 常用的几种设计模式详解
设计模式的概述 设计模式分类 创建型模式 特点是将对象的创建与使用分离(解耦),有 单例.原型.工厂方法.抽象工厂.建造者等5种. 结构型模式 用于描述如何将类或对象按某种布局组成更大的结构,代理.适 ...
- PHP最常用的几种设计模式
[TOC] PHP最常用的几种设计模式 单例模式 工厂模式 适配器 注册树 观察者模式 策略模式 单例设计模式 所谓单例模式,即在应用程序中最多只有该类的一个实例存在,一旦创建,就会一直存在于内存中! ...
- C++常用的11种设计模式解释及示例
c++常用的设计模式包括单例模式.工厂模式.抽象工厂模式.适配器模式.装饰者模式.代理模式.外观模式.桥接模式.组合模式.享元模式.观察者模式和命令模式等.使用设计模式的好处:提高代码的可读性和可维护 ...
- java二十三种设计模式——工厂设计模式
java设计模式的分类 在java中,设计模式有三十三种之多,分为三大类: 创建性模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构性模式,共七种:适配器模式.装饰器模式 ...
最新文章
- openmv4闪灯说明_OpenMV Cam
- Linux常用命令:cp,mv,rm
- Java传统的io和nio区别_Java中IO和NIO的本质和区别
- 【LeetCode从零单排】No 3 Longest Substring Without Repeating Characters
- 比特币拒绝第 340 次“被死亡”
- SQL Server 2005 Compact Edition 程序设计与性能优化
- linux26内核,Linux26内核对象机制研究.pdf
- git分支合并指定代码_git的几种实用操作(合并代码与暂存复原代码)
- 学习Oracle SQL loader 的使用
- poj 1182 食物链的一种解法(详解),非向量法
- 图纸怎么发给别人_微信语音怎么转发?微信语音转发给别人最新办法10秒解决...
- 电子计算机音乐乐谱aliez,aLIEz(核爆神曲)吉他谱(图片谱,指弹)_泽野弘之(澤野弘之 / さわの ひろゆき / Hiroyuki Sawano)...
- mysql 1236_MySQL 1236错误解决方法
- Python爬虫(1)
- 洛谷 P1039 侦探推理 题解
- Lombok使用以及优缺点
- 铁威马NAS媒体索引设置教程
- 2PC、3PC、TCC
- 程序员不得不写得(一):Eclipse, VS.net, CSharpDevelope
- python求f的倒数_Python中整数的倒数
热门文章
- 求连续区间和为目标值的一种解题思路
- 入侵检测技术目的-发现黑客
- 最小树形图(bzoj 4349: 最小树形图 2260: 商店购物)
- HDU 5979 2016ICPC大连 I: Convex
- opencv 图像融合
- 多项式之和 Sn=a+aa+aaa+aaaa+.....+aaa.....aa(n个a)
- 微服务架构系列文章、精品教程
- zookeeper教程,docker 安装,命令,python操作zookeeper,分布式队列,分布式锁
- (二)PyQt5基础学习
- 自然场景下文本检测主要数据集