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

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

发布时间:2022-07-08 13:04:12 所属栏目:PHP教程 来源:互联网
导读:PHP最常用的2种设计模式:工厂模式和单例模式 1.工厂模式 主要作用是降低耦合度。 abstract class Operation{ abstract public function getValue($num1,$num2); public function getAttr(){ return 1; } } class Add extends Operation{ public function get
  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();
 
  实际中用作数据库连接类和工厂模式一起使用,根据参数调用单例模式,可以提高资源使用效率。
 

(编辑:拼字网 - 核心网)

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