浅析php原型模式
原型模式:
用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
应用场景:类的资源非常多、性能和安全要求,一般和工厂方法结合使用。
<?php /** *原型模式 */ //声明一个克隆自身的接口 interfacePrototype{ functioncopy(); } //产品要实现克隆自身的操作 classStudentimplementsPrototype{ //简单起见,这里没有使用getset public$school; public$major; public$name; publicfunction__construct($school,$major,$name){ $this->school=$school; $this->major=$major; $this->name=$name; } publicfunctionprintInfo(){ printf("%s,%s,%sn",$this->school,$this->major,$this->name); } publicfunctioncopy(){ returnclone$this; } } $stu1=newStudent('清华大学','计算机','张三'); $stu1->printInfo(); $stu2=$stu1->copy(); $stu2->name='李四'; $stu2->printInfo(); ?>
这里可以看到,如果类的成员变量非常多,如果由外部创建多个新对象再一个个赋值,则效率不高代码冗余也容易出错,通过原型拷贝复制自身再进行微小修改就是另一个新对象了。
设计模式的第一部分,创建型模式就总结完了。下面还有两部分结构型设计模式和行为型设计模式稍后继续。