基础的三种设计模式
工厂模式
为创建对象提供了一个统一的接口,好处是当被创建对象命名空间或者名称改变时,直接修改工厂的创建方法即可
<?php class Factory{ public static createDatabase(){ $db = new Database(); return $db; } }
单例模式
避免重复创建对象,浪费系统资源
class Database{ //保存实例 public $db; private function __construct(){ //将构造方法私有化 } public static function getInstance(){ if(!isset($this->db)){ $this->db = new Database(); } return $this->db; } }
注册器模式
可以在程序执行开始统一创建对象,将对象绑定到全局变量上,可以省去调用获取实例的过程
class Register{ protected static $objects; /** * 绑定对象到树 */ static function set($alias,$obj){ self::objects[$alias] = $obj; } /** * 从树上获取对象 */ static function get($alias){ return self::objects[$alias]; } /** * 从树上卸载对象 */ static function _unset($alias){ unset(self::objects[$alias]); } }