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

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

  • 相关阅读:
    java基础 01
    c++11——模板的细节改进
    c++11——auto,decltype类型推导
    poj_1182 并查集
    poj_1988 并查集
    poj_1161 并查集
    poj_3067 树状数组
    poj_2182 线段树/树状数组
    poj_1190 树状数组
    动态规划
  • 原文地址:https://www.cnblogs.com/steptoupper/p/2632322.html
Copyright © 2020-2023  润新知