原型模式设计克隆人

来源:互联网 发布:g76内螺纹编程实例 编辑:程序博客网 时间:2024/06/05 12:38

1 模式介绍


  用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象

2 模式结构


   


3 项目应用

   设计一个可以克隆person的类。


3.1 源码
  
<?php/** * 原型模式 * copyright (c) http://blog.csdn.net/CleverCode * */interface Prototype{/*{{{*/    public function shallowCopy();    public function deepCopy();}/*}}}*/class Person  implements Prototype{/*{{{*/    public $name;    public $sex;    public function __construct($name,$sex)    {        $this->name = $name;        $this->sex = $sex;    }    public function shallowCopy()    {        return clone $this;            }    public function deepCopy()    {        $serialize_obj = serialize($this);        $clone_obj = unserialize($serialize_obj);        return $clone_obj;      }    public function show()    {        echo "姓名:".$this->name."\r\n";        echo "性别:".$this->sex."\r\n";    }}/*}}}*/class Client{    public static function main()    {        $person1 = new Person('张三','男');         $person1->show();        //克隆人         $person2 = $person1->shallowCopy();        $person2->name = '李四';        $person2->show();    }}Client::main();?>


3.2 结果


1 0
原创粉丝点击