月度归档:2015年03月

PHP设计模式之代理模式

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

代理模式proxy.php

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

PHP设计模式之装饰器模式

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

 

PHP设计模式之原型模式

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

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

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

 

PHP设计模式之观察者模式

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

 

 

PHP设计模式之策略模式

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

 

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

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

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

工厂模式factory.php

单例模式singleton.php

 

 工厂模式和单例结合使用

 

注册器类register.php

 

用PHP开发PSR-0框架之自动加载

使用PHP有一段时间,最近学习了一下rango讲的《大话PHP设计模式》,受益匪浅,于是将所学笔记记录在此,有兴趣的同学可以看一下。课程中开头讲到了自动加载,本文以后的章节都是以此自动加载为基础来展开的。

PSR-0面向对象开法规范,是PHP业界的一个规范

  1. 全部使用命名空间
  2. 所有PHP文件必须自动载入,不能有require/include
  3. 单一入口

入口文件index.php

 文件加载器LampBlog/Loader.php