大话设计模式

1.工厂模式,通过类生成对象,在多处new 对象时不便修改,可直接修改工厂类

工厂类一般使用静态方法

 

 2.单例模式,只创建一次对象,不存在则实例化,存在则直接返回

private 构造函数 禁止外部实例化对象

 

工厂+单例模式

 

3.注册树模式,全局共享和交换对象

 

4.适配器模式,把不同的函数封装为统一的接口,如mysql/mysqli/sqlserver、微信/支付宝/网银支付

//定义接口类
interface A {
   public function pay();        
}

//实现接口
class B implements A {
   public function pay(){
        XXX
    }     
}
class C implements A {
   public function pay(){
          XXX
    }  
}

$pay = new B();  //
调用切换 $pay = new C();
$result = $pay->pay();

 5.策略模式

 

6.数据对象映射模式

结合工厂、注册树模式调用数据对象模式类User(构造函数查库,析构函数更库)

class User{
   public $name;
   function __construct($id){
      $data = query name
      $this->name = $data['name'];
   }
   function __destruct(){
      XXX update name
   }
}

class
C{ public static function getUser($uid){ $key = 'user_'.$id;
       $user = Register::get($key);
       if(!$user){
         $user = new User($id);
         Register::set($key, $user);
       }
       return $user; } }

class A{
  public function index(){
    $user = C::getUser(2);
    $user->name = '黄和';
  }
}

 

7.观察者模式,当被观察者发生变化时,观察者接收通知并操作更新

(附地址)https://blog.csdn.net/weiguang102/article/details/116032638

 

8.原型模式

 

9.装饰器模式, 可动态添加多个装饰器来修改/增加 功能/数据

 

10.迭代器模式

 

11.代理模式

posted @ 2023-03-16 15:11  东方素  阅读(17)  评论(0编辑  收藏  举报