php设计模式之原型模式
来源:互联网 发布:碧海潮生曲 知乎 编辑:程序博客网 时间:2024/05/18 17:41
实现方式:
原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象。
何时使用:
原型模式适用于大对象的创建。创建一个大对象需要需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可,这样就免去了类创建重复的初始化操作。
实例:
<?php/** * * @authors mtg * @date 2015-08-20 10:10:47 */class People { public $name; public $sex; public $eye; public $ear; public $leg; public $arm; public $brain; //一个人还需要其他各种属性,一个完整的人的初始化工作时非常复杂的 function __construct($name,$sex,$eye,$ear,$leg,$arm,$brain){ $this->name=$name; $this->sex=$sex; $this->eye=$eye; $this->ear=$ear; $this->leg=$leg; $this->arm=$arm; $this->brain=$brain; } public function copy() { return clone $this; } public function _setname($name) { $this->name=$name; } public function _setsex($sex) { $this->sex=$sex; } //还有很多修改属性的方法,此处省略; public function appearance() { $it=$this->sex=="男孩"?'他':"她"; echo $this->name."是一个".$this->sex.",".$it."有".$this->arm."的胳膊和".$this->brain."的大脑."; } public function run() { echo $this->name."正在奔跑"; echo "</br>"; } public function eat() { echo $this->name."正在吃饭"; echo "</br>"; } //省略各种方法}$xiaoming=new People("小明","男孩","","","","强壮的","聪明");$xiaoming->appearance();//小明是一个男孩,他有强壮的的胳膊和聪明的大脑.$xiaoming->run();//小明正在奔跑/*此处的作用是 *因为一个人的初始化复杂,所以采用原型模式。 */$xiaoqiang=$xiaoming->copy();$xiaoqiang->_setname('小强');//小强是一个男孩,他有强壮的的胳膊和聪明的大脑.$xiaoqiang->appearance();$xiaoqiang->run();//小强正在奔跑
0 0
- [转载]PHP设计模式之:原型模式
- php设计模式之原型模式
- PHP 设计模式之原型模式
- PHP 设计模式---原型模式
- 设计模式之原型
- 设计模式之原型
- 设计模式 之 原型
- 设计模式之原型
- 设计模式之原型
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之-原型模式
- 设计模式之 原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- HDU 2520 我是菜鸟,我怕谁
- 用于并行计算的多线程数据结构,第 1 部分: 设计并发数据结构
- Java Calendar详解 - 获取近一周日期与星期
- MySQL命令行导出数据库
- Java栈与堆
- php设计模式之原型模式
- Python条件语句
- QT creator+OpenCV2.4.2+MinGW 在windows下开发环境配置
- 使用.NET Reflector 查看Unity引擎里面的DLL文件
- Search a 2D Matrix
- PHP 数组运算符
- (二)设计模式之UML六大关系
- 实现和IE浏览器交互的几种方法的介绍(二)
- 修改npm包管理器的registry为淘宝镜像(npm.taobao.org)