php之大话代理模式

函数


<meta charset='utf-8'>
<?php

function im_GiveGift()
{
	return array(
		'GiveFlowers' => function() {die('接口未定义');},
		'GiveChocolate' => function() { die('接口未定义');},
	);
}

function SchoolGirl(Array $data)
{
	extract($data);
	return array(
		'Name' => function() use($name)
		{
			return $name;
		}
	);
}

function Pursuit($mm)
{
	return array_merge(
		im_GiveGift(),
		array(
			'GiveFlowers' => function() use($mm)
			{
				echo $mm['Name']().' 送你鲜花<br/>';
			},
			'GiveChocolate' => function() use($mm)
			{
				echo $mm['Name']().' 送你巧克力<br/>';
			},
		)
	);
}

function Proxy($mm)
{
	$gg = Pursuit($mm);
	
	return array_merge(
		im_GiveGift(),
		array(
			im_GiveGift(),
			'GiveFlowers' => function() use($gg)
			{
				$gg['GiveFlowers']();
			},
			'GiveChocolate' => function() use($gg)
			{
				$gg['GiveChocolate']();
			},
		)
	);
}

$jiaojiao = SchoolGirl(array('name' => 'jiaojiao'));

$daili = Proxy($jiaojiao);

$daili['GiveFlowers']();

$daili['GiveChocolate']();
	
/* c_daili.php */



	
  
面向对象


<meta charset='utf-8'>
<?php
//送礼物
interface GiveGift
{
	function GiveFlowers();
	function GiveChocolate();
}

class SchoolGirl
{
	private $name;
	public function Name($value = '')
	{
		if ($value !== '') $this->name = $value;

		return $this->name;
	}
}

class Pursuit implements GiveGift
{
	private $mm = Null;
	public function __construct(SchoolGirl $mm)
	{
		$this->mm = $mm;
	}

	public function GiveFlowers()
	{
		echo $this->mm->Name(),' 送你鲜花<br/>';
	}

	public function GiveChocolate()
	{
		echo $this->mm->Name(),' 送你巧克力<br/>';
	}
}

class Proxy implements GiveGift
{
	private $gg = Null;  //Pursuit
	public function __construct(SchoolGirl $mm)
	{
		$this->gg = new Pursuit($mm);
	}

	public function GiveFlowers()
	{
		$this->gg->GiveFlowers();
	}

	public function GiveChocolate()
	{
		$this->gg->GiveChocolate();
	}
}

$jiaojiao = new SchoolGirl();
$jiaojiao->Name('jiaojiao');

$daili = new Proxy($jiaojiao);

$daili->GiveFlowers();
$daili->GiveChocolate();
		 
	
/* c_daili,php */



	
  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值