PHP 设计模式(一)

基础的三种设计模式

工厂模式

为创建对象提供了一个统一的接口,好处是当被创建对象命名空间或者名称改变时,直接修改工厂的创建方法即可

<?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]);
     }
 }
原文地址:https://www.cnblogs.com/xiaoliwang/p/9436149.html