<?php //原型设计模式创建对象的方式是复制和克隆初始对象或原型,这种方式比创建新实例更为有效。 class CD{ public $band = ''; public $title = ''; public $trackList = []; public function __construct($id){ $cds = [ ['band' => 'fenghuangchuanqi', 'title' => 'zuixuanminzufeng'], ['band' => 'TFBOYS', 'title' => 'zuoshouyoushou'], ]; if(empty($cds[$id])){ $this->band = 'unknown'; $this->title = 'unknown'; }else{ $this->band = $cds[$id]['band']; $this->title = $cds[$id]['title']; } } public function buy(){ var_dump($this); } } class MixtapeCD extends CD{ public function __clone(){ $this->title = 'Mixtape'; } } $externalPurchaseInfoBandID = 1; $bandMixProto = new MixtapeCD($externalPurchaseInfoBandID); $externalPurchaseInfo = []; $externalPurchaseInfo[] = ['brrr', 'goodbye']; $externalPurchaseInfo[] = ['what it means', 'brrr']; foreach($externalPurchaseInfo as $mixed){ $cd = clone $bandMixProto; $cd->trackList = $mixed; $cd->buy(); } //处理创建成本较高和新实例的初始信息保持相对不变的对象时,最佳的做法是使用基于原型设计模式创建的复制类。
原型设计模式
精选 转载huang_he_87 博主文章分类:设计模式
上一篇:mysql全量备份与增量备份
下一篇:代理设计模式
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
设计模式——原型设计模式
缺点:必须配备克隆方法对克隆复杂对象或对克隆出的对象进行复杂改造时...
原型模式 ide 深克隆 -
原型设计模式
定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.Prototype模式允许一个对象再创建另外一个可定制的对象,根
设计模式 prototype class object system -
设计模式--原型模式
Java工程源码 类图 定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 优点 - 性能优良 原型模式是在内存二进制流的拷贝,要比
java 设计模式 System 构造函数 深拷贝