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

前端之家收集整理的这篇文章主要介绍了PHP最常用的2种设计模式工厂模式和单例模式介绍前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.工厂模式
主要作用是降低耦合度。
<div class="codetitle"><a style="CURSOR: pointer" data="49317" class="copybut" id="copybut49317" onclick="doCopy('code49317')"> 代码如下:

<div class="codebody" id="code49317">
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单例模式
单例是因为一个就足够了,多了浪费。比如邮局里的电话簿只有一本,有需要的人拿来看,没有必要每个人要查的时候工作人员就拿一本出来,看完了再回收。
<div class="codetitle"><a style="CURSOR: pointer" data="41031" class="copybut" id="copybut41031" onclick="doCopy('code41031')"> 代码如下:
<div class="codebody" id="code41031">
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相关文章