1.原型模式简介
原型模式的核心思想是,通过拷贝指定的“原型实例(对象)”,创建跟该对象一样的新对象。简单理解就是“克隆指定对象”。
2.源码实现
<?php
/*抽象原型角色*/
abstract class Prototype {
abstract function cloned();
}
/*具体原型角色*/
class Plane extends Prototype {
public $color;
public function Fly()
{
echo "飞机飞啊飞\n";
}
public function cloned()
{
return clone $this;
}
}
/*客户角色*/
class Client {
public static function main()
{
$plane1 = new Plane();
$plane1->color = "blue";
$plane2 = $plane1->cloned();
$plane1->Fly();
$plane2->Fly();
echo "plane1的颜色为: {$plane1->color}\n";
echo "plane2的颜色为: {$plane2->color}\n";
}
}
Client::main();
?>
3.运行及其结果
飞机飞啊飞
飞机飞啊飞
plane1的颜色为: blue
plane2的颜色为: blue
网友评论