浅析php原型模式
php  /  管理员 发布于 7年前   392
原型模式: 用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。 这里可以看到,如果类的成员变量非常多,如果由外部创建多个新对象再一个个赋值,则效率不高代码冗余也容易出错,通过原型拷贝复制自身再进行微小修改就是另一个新对象了。 设计模式的第一部分,创建型模式就总结完了。下面还有两部分结构型设计模式和行为型设计模式稍后继续。
应用场景: 类的资源非常多、性能和安全要求,一般和工厂方法结合使用。
/**
* 原型模式
*/
//声明一个克隆自身的接口
interface Prototype {
function copy();
}
//产品要实现克隆自身的操作
class Student implements Prototype {
//简单起见,这里没有使用get set
public $school;
public $major;
public $name;
public function __construct($school, $major, $name) {
$this->school = $school;
$this->major = $major;
$this->name = $name;
}
public function printInfo() {
printf("%s,%s,%sn", $this->school, $this->major, $this->name);
}
public function copy() {
return clone $this;
}
}
$stu1 = new Student('清华大学', '计算机', '张三');
$stu1->printInfo();
$stu2 = $stu1->copy();
$stu2->name = '李四';
$stu2->printInfo();
?>您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号