设计模式入门-代理模式(php版)
2015-03-30 10:24
627 查看
关于这个模式暂时理解的不深,直接上代码吧。
常规的代理模式的uml类图如下所示:
从上图中可以看出client需要调用realsubject类的服务,proxy类其实充当的是一个中介的角色。至于为什么要加上这样一层中间的代理,暂时不理解,如果有了解的朋友可以文章的下方评论区提出,不胜感激。
代理模式的官方定义是:为另一个对象提供一个替身或占位符以控制对这个对象的访问。
写了一个男生追女生的案例帮助理解,
Girl.php
Roommate.php
代码可以从这个地址下载:http:://www.walk-sing.com/
常规的代理模式的uml类图如下所示:
从上图中可以看出client需要调用realsubject类的服务,proxy类其实充当的是一个中介的角色。至于为什么要加上这样一层中间的代理,暂时不理解,如果有了解的朋友可以文章的下方评论区提出,不胜感激。
代理模式的官方定义是:为另一个对象提供一个替身或占位符以控制对这个对象的访问。
写了一个男生追女生的案例帮助理解,
Girl.php
<?php class Girl{ private $name; public function __construct($name){ $this->name = $name; } public function getName(){ return $this->name; } }Boy.php
<?php require_once 'GiveGift.php'; class Boy implements GiveGift{ public $girl; public function __construct(Girl $girl){ $this->girl = $girl; } public function giveBook(){ echo $this->girl->getName().',送你一本书'; } public function giveLetter(){ echo $this->girl->getName().',送你一封信'; } public function giveFolower(){ echo $this->girl->getName().',送你一朵书'; } }
Roommate.php
<?php require_once 'GiveGift.php'; class Roommate implements GiveGift{ public $boy; public function __construct(GiveGift $boy){ $this->boy = $boy; } public function giveBook(){ $this->boy->giveBook(); } public function giveLetter(){ $this->boy->giveLetter(); } public function giveFolower(){ $this->boy->giveFolower(); } }GiveGift.php
<?php interface GiveGift{ public function giveBook(); public function giveLetter(); public function giveFolower(); }index.php
<?php require 'Girl.php'; require 'Boy.php'; require 'Roommate.php'; //其实这里面的韩梅梅就是真实需要请求的服务 $realSubject = new Girl('韩梅梅'); //男孩就是客户端 $client = new Boy($realSubject); //女孩的室友就是一个中介代理 $proxy = new Roommate($client); $proxy->giveBook(); $proxy->giveLetter(); $proxy->giveFolower();
代码可以从这个地址下载:http:://www.walk-sing.com/
相关文章推荐
- PHP设计模式漫谈之代理模式
- PHP设计模式10-代理模式
- 设计模式入门-策略模式(php版)
- php设计模式入门-命令模式
- 设计模式入门-模板方法模式(php版)
- 24种设计模式介绍与6大设计原则(PHP版)之代理模式
- PHP草根论之设计模式-代理模式
- php-设计模式-代理模式
- 设计模式入门-装饰器模式(php版)
- php设计模式之———代理模式
- PHP设计模式之代理模式的深入解析
- php 设计模式之 代理模式,适配器模式,外观模式
- PHP设计模式(7)代理模式
- 设计模式入门-适配器模式(php版)
- php设计模式 Proxy (代理模式)
- PHP设计模式-代理模式
- 设计模式入门之代理模式Proxy
- PHP设计模式:结构型之代理(Proxy)
- 设计模式入门-状态模式(php版)
- 设计模式入门-迭代器模式(php版)