大话设计模式
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.代理模式