服务器之家

服务器之家 > 正文

PHP最常用的2种设计模式工厂模式和单例模式介绍

时间:2020-01-06 16:29     来源/作者:PHP教程网

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(); 


实际中用作数据库连接类和工厂模式一起使用,根据参数调用单例模式,可以提高资源使用效率。

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
返回顶部