咱们首先讲,单例、工厂模式,两个最最根本的设计模式

设计模式中罕用的魔术办法

  1. __get/__set 拜访不存在的属性时
  2. __call(fun_name,para)/__callStatic 拜访类不存在的办法时调用
  3. __tostring 将对象当做字符串时,调用,比方echo一个对象
  4. __invoke($param) 将对象当做函数应用的时候调用

工厂模式

  1. 如果一个类产生名字、参数等批改,能够间接在工厂里批改,不必在每个new的中央批改

    class Factory { static function createDB(){     return new DataBases(); }}

单例模式

  1. 屡次实例化和一次实例化成果统一,节俭资源

    class DataBases{ static private $db; // 避免new private function __construct(){      } private function __clone(){}  static public function instance(){     if(!self::$db){         self::$db = new self();     }     return self::$db; } }DataBases::instance();