标签:设计模式 原型模式
<?php /** * 1.5 原型模式 * 解决的问题: * 某些结构复杂的对象的创建工作,由于需 * 求的变化,这些对象经常面临着剧烈的变 * 化,但是它们却有用比较稳定一种的接口。 * 解决的方案: * 用原型实例指定创建对象的种类,并且通 * 过拷贝这些原型创建新的对象。 * 该模式无需任何角色: * 因为在PHP中,在每个声明的类中已经默认 * 包含了克隆函数,所以无需单独在建立一个 * 抽象类来实现克隆操作了。 * 优点: * 1. 简化某些比较复杂对象的创建工作,同时 * 也可以提高效率; * 2. 原型模式提供了简化的创建结构. * 缺点: * 使用场景: * 1. 当要实例化的类是在运行时刻指定时 * ,例如,通过动态装载。 * 2. 为了避免创建一个与产品类层次平行 * 的工厂类层次时。 * 3. 当一个类的实例只能有几个不同状态 * 组合中的一种时,建立相应数目的原 * 型并克隆它们可能比每次用合适的状 * 态实例化该类更方便一些。 */ class Person{ private $name; private $age; private $sex; public function __construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } public function getInfo(){ return $this->name.‘ ‘.$this->age.‘ ‘.$this->sex; } } //客户端 $p1=new Person(‘Jack‘,‘20‘,‘male‘); $p2=clone $p1; echo $p1->getInfo(); ?>
本文出自 “一切皆有可能” 博客,请务必保留此出处http://noican.blog.51cto.com/4081966/1614772
标签:设计模式 原型模式
原文地址:http://noican.blog.51cto.com/4081966/1614772