一 摘要
晚上看了关于代理模式的一篇文章,写的非常生动,来过来分享给大家.这里我就PHP代理模式给大家进行详细说明.下面我们来看一看
这几天王宝强妻子出轨经纪人事件惹尽了眼球,“你缺经纪人吗” 一下子成为打招呼必备热词。在紧跟“潮流”之前我们有必要了解下,经纪人都负责为宝强做哪些事呢?
1. 为宝强安排档期
2. 为宝强做公关
3. 为宝强照顾老婆
从上面可以发现,宝强几乎被架空了,陷入了一场圈套之中啦.这里还是借用别人画的一个图.
下面我们来看一下用UML类图具体实现.
上面图我们可以看出,star类与Agent类都是集成与公共接口类,并实现接口定义的方法.
下面我们来看一看代码的具体实现.
第一步:建一个公共接口
interface ICareWife{
//照顾老婆
function LoveWife();
//参加节目
function attendSHow();
//存款放我这
function takeCareMoney();
}
第二步:建一个Stat类集成与公共接口类并实现方法.
//明星类继承与公共接口
class star implements ICareWife{
private $girlName;
function __construct($name=‘girl‘)
{
$this->girlName = $name;
}
function LoveWife()
{
// TODO: Implement LoveWife() method.
echo "你的老婆由我{$this->girlName}照顾,你安心参加演出吧<hr>";
}
function attendSHow()
{
// TODO: Implement attendSHow() method.
echo "{$this->girlName}.参加演出<hr>";
}
function takeCareMoney()
{
// TODO: Implement takeCareMoney() method.
echo "{$this->girlName}的钱也由我来保管<hr>";
}
}
第三步:建一个Agent类集成与公共接口类并实现方法.
/*
* 经纪人
*/
class Agent implements ICareWife{
private $mStart;
//经纪人可以代表明星去做一些决定,如帮忙照看老婆 啊 哈哈......
function __construct($names=‘nihao‘)
{
$this->mStart = new star($names);
}
public function LoveWife()
{
// TODO: Implement LoveWife() method.
$this->mStart->LoveWife();
}
public function attendSHow()
{
// TODO: Implement LoveWife() method.
$this->mStart->attendSHow();
}
public function takeCareMoney()
{
// TODO: Implement LoveWife() method.
$this->mStart->takeCareMoney();
}
}
第四步 运行结果
echo"运行结果:<hr/>";
$star = new star("王宝强");
$agent = new Agent("宋喆");
$star->attendSHow();
$agent->LoveWife();
$star->takeCareMoney();
运行结果
结束
PHP的代理模式就说完了,不知道大家理解没有.没理解的再看看.
时间: 2024-12-05 05:42:52