咱们首先讲,单例、工厂模式,两个最最根本的设计模式
设计模式中罕用的魔术办法
- __get/__set 拜访不存在的属性时
- __call(fun_name,para)/__callStatic 拜访类不存在的办法时调用
- __tostring 将对象当做字符串时,调用,比方 echo 一个对象
- __invoke($param) 将对象当做函数应用的时候调用
工厂模式
-
如果一个类产生名字、参数等批改,能够间接在工厂里批改,不必在每个 new 的中央批改
class Factory {static function createDB(){return new DataBases(); } }
单例模式
-
屡次实例化和一次实例化成果统一,节俭资源
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();