命令链模式总结

个人理解,命令链模式就是,给所有相关程序发送一条命令,然后处理结果

比如说你要找苍老师的种子,于是你向baidu、google、yahoo发送你的关键字

不管你用什么搜索引擎,你的目的只有一个,就是找种子那个响应


<?php
	header("Content-type: text/html; charset=utf-8");
	/*****************************************
	*	你要结婚了,但是缺钱需要借2W,于是向你想到了你的前女友们
	*	你就给他们打电话(发出命令),你的前女友们会给你作出响应
	*	当你凑够2W的时候就可以结婚了,就没必要再借钱了(命令停止)
	*****************************************/

	//女友接口
	interface Girlfriend{
		function giveMoney($howMuch);
	}

	//这是你
	class You{
		//女友列表,女友是自己的所以要private,但也保不齐以后会是public (-__-)y--~ 
		private $girlFriendList = array();
		//你丫一穷光蛋,一分钱没有(是怎么泡到妞的)
		private $haveMoney = 0;

		//将你的前女友们加入列表
		function callGirlfriends($myGirlfriend){
			$this->girlFriendList[] = $myGirlfriend;
		}
		//借钱方法
		function borrowMoney($money){
			//翻开你手机通讯录,像他们挨个借钱
			foreach($this->girlFriendList as $girlfriend){
				$this->haveMoney += $girlfriend->giveMoney($money);
				//当你攒够钱的时候就放下电话,break了
				if($this->haveMoney >= 20000){
					echo "哥有钱结婚了";
					break;
				}
			}
		}
	}

	//现任女友,就是你未来的老婆给你5000
	class CurrentGrilfriend implements Girlfriend{
		function giveMoney($howMuch){
			echo "I have 5000";
			return 5000;
		}
	}

	//你的前任是个汉子性格的女孩
	class PrevGrilfriend implements Girlfriend{
		function giveMoney($howMuch){
			//她说。。。
			echo "Get Out!";
			//但依然借给了你7000
			return 7000;
		}
	}

	//你的前前任是个富二代,因为性别的原因分开了
	//但他依然爱你,希望用这么多钱能打动你
	class PrevPrevGrilfriend implements Girlfriend{
		function giveMoney($howMuch){
			echo "Do You Love Anymore";
			return 5000000;
		}
	}

	//于是,你就不需要问你的初恋女友借钱了
	class FirstGrilfriend implements Girlfriend{
		function giveMoney($howMuch){
			echo "Ok";
			return 5000;
		}
	}

	//这是你
	$you = new You;
	//将你的前女友们加入到借钱名单中
	$you->callGirlfriends(new CurrentGrilfriend);
	$you->callGirlfriends(new PrevGrilfriend);
	$you->callGirlfriends(new PrevPrevGrilfriend);
	$you->callGirlfriends(new FirstGrilfriend);
	//借钱
	$you->borrowMoney(20000);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值