加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 06:09:08 所属栏目:PHP教程 来源:网络整理
导读: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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读