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

yipeiwu_com6年前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();

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

相关文章

老生常谈PHP面向对象之解释器模式

最近在看 “深入PHP面向对象模式与实践” ,学习书中的内容后瞬间觉得自己有点高大上了,哈 ! 其实还是个菜B。相信也会有新手朋友在看这本(我自己也是新手),对书中我个人认为比较难的内容...

PHP分页显示的方法分析【附PHP通用分页类】

本文实例讲述了PHP分页显示的方法。分享给大家供大家参考,具体如下: <?php header("content-type:text/html;charset=utf-...

php使用curl并发减少后端访问时间的方法分析

本文实例讲述了php使用curl并发减少后端访问时间的方法。分享给大家供大家参考,具体如下: 在我们平时的程序中难免出现同时访问几个接口的情况,平时我们用curl进行访问的时候,一般都是...

php 读写json文件及修改json的方法

实例如下所示: // 追加写入用户名下文件 $code="001";//动态数据 $json_string = file_get_contents("text.json");...

PHPTree——php快速生成无限级分类

PHPTree——php快速生成无限级分类

它就是PHPTree。 git地址:https://git.oschina.net/jiusem/PHPTree.git 或从【宜配屋www.yipeiwu.com】下载 https:/...