标签归档:设计模式

PHP设计模式之代理模式

代理模式:在客户端和实体之间建立一个代理对象(Proxy),客户端对实体的操作全部委派给代理对象,隐藏实体的具体实现细节
Proxy还可以与业务代码分离,部署到另外的服务器。业务代码通过RPC来委派任务

代理模式proxy.php

当要执行一个读操作时,在从库执行,当要执行写操作时连接主库,这样就实现了读写分离,连接数据库的操作交给代理类来执行。

PHP设计模式之装饰器模式

装饰器模式可以动态的添加修改类的功能
一个类提供了一项功能,如果要在修改并添加额外的功能,传统编程,需要写一个字类继承它,并重新实现类的方法
使用装饰器模式,只需在运行时添加一个装饰器对象,可以实现最大的灵活性

 

PHP设计模式之原型模式

原型模式与工厂模式作用相似,都是用来创建对象的;

与工厂模式的实现不同,原型模式是先创建一个对象,然后通过clone原型对象来创建新的对象,这样就免去了类创建时的重复初始化操作;

原型模式适合于大对象的创建,创建一个对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可;

 

PHP设计模式之观察者模式

当一个对象发生改变时,依赖它的对象全部收到通知,并自动更新
场景:一个事件发生后,要执行一连串更新操作。传统的编程方法就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增多之后,代码变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑要修改事件主体代码
观察者模式实现了低耦合,非侵入式的通知与更新机制

 

 

PHP设计模式之策略模式

策略模式是将一组特定的行为和算法封装成类,以适应某些特定的上下文环境
实际应用举例,假如有一个电商网站系统,针对男性女性用户要跳转到不同的赠品类目,并且所有广告位展示不同的广告

 

PHP设计模式之工厂模式、单例模式和注册模式

所有面向对象中最常见的三种设计模式分别是:工厂模式,单例模式,注册(器)模式

  1. 工厂模式,工厂方法或者类产生对象,百不是在代码中直接new
  2. 单例模式,使某个类的对象仅允许创建一个
  3. 注册模式,全局共享和交换对象

工厂模式factory.php

单例模式singleton.php

 

 工厂模式和单例结合使用

 

注册器类register.php

 

设计模式之创建型模式

工厂方法模式:提供一个简单的决策类,根据条件生成产品。

抽象工厂模式:提供一个创建并返回一系列产品的接口。

单件模式:某个类只能有一个实例。提供一个全局访问点。(可拓展到有限个实例)

生成器模式:将一个复杂对象的构建于呈现分开,以便根据不同需要创建不同的形式。

原型模式:先实例化一个类,然后克隆或者拷贝该类来构建新的实例。可以用共有方法进一步修改这些实例。