php静态代理的实例

<?php
class Printer
{
	public function printSth($str)
	{

		echo  "第一步 :之前先把  $str[0]   打残. <br/><br/>";
		
		echo "第二步:然后打120把  $str[0]   送进医院.<br/><br/>";

		echo "第三步:然后出院,然后再执行第一步.";	

	}
	//..............
}


class TextShop     //这是一个文印处理店,只文印,卖纸,不照相
{
	private $printer;

	public function __construct(Printer $printer)
	{
		$this->printer=$printer;
	}

	public function sellPaper()    //卖纸
	{
		echo 'give you some paper <br/>';
	}

	public function __call($method,$args)     //将代理对象有的功能交给代理对象处理
	{

		 if(method_exists($this->printer, $method)) {		 	
                        $this->printer->$method($args);
                    }
	}
}

 class PhotoShop   //这是一个照相店,只文印,拍照,不卖纸
  {   
            private $printer;
            
            public function __construct(Printer $printer) {
                $this->printer = $printer;
            }
            
            public function takePhotos() {    //照相
                echo 'take photos for you <br>';
            }
            
            public function __call($method, $args) {    //将代理对象有的功能交给代理对象处理
                if(method_exists($this->printer, $method)) {
                    $this->printer->$method($args);
                }
            }
}
        

$printer = new Printer();
$textShop = new TextShop($printer);
$photoShop = new PhotoShop($printer);

$textShop->printSth('小张');


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值