注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Copper peas ' Bolg

Keep On Moving...This Is My Life...

 
 
 

日志

 
 

【原】 PHP 设计模式六之代理设计模式  

2011-06-03 16:05:00|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

<?php
header("Content-type:text/html; charset=utf-8");
/**
 * 代理设计模式【委托代理】变种相对多
 *
 * 定义:为其他对象提供一种代理以控制对这个对象的访问。
 * 在一些情况下客户不想或者不能直接引用一个对象,而代理对象可以在客户和目标对象之间起到中介作用,去掉客户不能看到的内容和服务或者增添客户需要的额外服务。
 *
 * 案例描述:  A对象 -> 生产A鼠标,A键盘,A显示器---->C 代理商 ---->D 消费者
 * 代理商C 经过市场调查反馈,发现消费者只买A的鼠标,A显示器
 * 代理商C 决定只代理A的鼠标,A显示器 提供给消费者
 * @author Chen Wei Han <csq-3@163.com>
 * @copyright Chen Wei Han 2011.06.02
 * @link http://csq-3.blog.163.com
 * @package demo
 * @version $Id: factorymethod.php 1 2011-06-02
 */

/**
 * A对象角色
 * 
 */
class A
{
 private $productmouse;
 private $productkeyboard;
 private $productdisplay;
 
 public function creatmouse()
 {
  $productmouse="A鼠标";  
  return $productmouse;
 }
 
 public function creatkeyboard()
 {
  $productkeyboard="A键盘";  
  return $productkeyboard;
 }
 
    public function creatdisplay()
 {
  $productdisplay="A显示器";  
  return $productdisplay;
 }
}

/**
 * C代理商
 *
 */
class Proxy
{
 private $productmouse;
 private $productdisplay;
 private $_class;
  
 public function __construct($class)
 {
  $this->_class=$class;
 }
 
 public function creatmouse()
 {
  $productmouse=$this->_class->creatmouse(); 
  return $productmouse;
 } 
 
    public function creatdisplay()
 {
  $productdisplay=$this->_class->creatdisplay(); 
  return $productdisplay;
 }

}

/**
 * D消费者
 *
 */
class Customer
{
 
 private $proxy;
 private $product;
 
    public function Customer($class)
 {
  $this->proxy=$class;
 }
 
 //购买列表
 public function product()
 {
        $product=$this->proxy->creatmouse();
  $product.=$this->proxy->creatdisplay();
  return $product;  
 }
}

$proxy = new Proxy(new A);

$customer = new Customer($proxy);

echo $customer->product();

/*
 * 这里消费者买东西是通过代理商买的,根本不知道原产商是谁。
 */

 

 


 

  评论这张
 
阅读(82)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018