php设计模式之———代理模式
2015-04-23 00:20
417 查看
代理模式
为其他对象提供一种代理以控制对这个对象的访问。假设有个老人,他已经不能吃饭,不能睡觉,不能玩耍,这时候我们委托一个人,也就是找一个代理(delegate),将所有的事情交给这个代理去做。
模式中的角色
抽象角色(抽象类或接口):定义真实角色和代理角色所需要实现的方法真实角色:实现抽象角色中的方法,解决业务逻辑,不需要关心其他职责事务
代理角色:实现抽象角色中的方法,代理真实角色实现业务逻辑,可以附加自己的操作
phpDemo
抽象角色
[code]<?php /* 定义一个接口 */ interface life { function eat(); function run(); function sleep(); } ?>
真实角色
[code]<?php /* 真实角色 */ class user implements life { public function run() { echo __CLASS__.' run<br/> '; } public function eat() { echo __CLASS__.' eat<br/> '; } public function sleep() { echo __CLASS__.' sleep<br/> '; } } ?>
代理角色
[code]<?php /* 代理角色 */ class delegate implements life { private $old_man; //实现抽象角色的所有方法 public function __construct() { $this->old_man = new user(); } public function run() { $this->old_man->run(); } public function eat() { $this->old_man->eat(); } public function sleep() { $this->old_man->sleep(); } }
测试代码
[code] $delegate = new delegate(); $delegate->run(); $delegate->eat(); $delegate->sleep(); //输出:user run user eat user sleep
总结
职责清晰,真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了的作用和保护了目标对象的作用。
高扩展性
相关文章推荐
- php实现设计模式之代理模式
- php 设计模式之 代理模式,适配器模式,外观模式
- PHP草根论之设计模式-代理模式
- PHP与MySQL设计模式:代理模式
- 慕课网----大话PHP设计模式 五(原型模式,装饰器模式,迭代器模式,代理模式)
- PHP设计模式:代理Proxy模式
- php设计模式 Proxy (代理模式)
- PHP设计模式之代理模式的深入解析
- PHP设计模式10-代理模式
- 设计模式入门-代理模式(php版)
- PHP设计模式 五 (代理模式 装饰器模式)
- PHP设计模式漫谈之代理模式
- PHP设计模式漫谈之代理模式
- PHP设计模式 代理设计模式
- php设计模式之Proxy(代理模式)和Facade(外观)设计模式
- PHP设计模式——代理模式
- PHP设计模式之代理模式的深入解析
- 9. 星际争霸之php设计模式--代理模式
- 24种设计模式介绍与6大设计原则(PHP版)之代理模式