二十四设计模式之原型设计模式
来源:互联网 发布:淘宝宝贝系列属性出错 编辑:程序博客网 时间:2024/04/28 08:31
二十四设计模式之原型设计模式
前段时间写了有关工厂设计模式的文章,今天我们就再说一下同样是创建型设计模式的原型模式。
老样子,我们先说一下何为原型模式:
原型模式中使用了一种克隆的技术来复制实例化的对象,注意工厂模式是对类本身的一些改进写法,而原型模式主要集中在对实例的操作。这里我们就少不了用到的关键字clone了,有人会问为什么要用到原型模式,实例化时直接创建一个new实例不就得了,针对这样的人,我就想说:“不送”。开玩笑啦,如果我们要建立大量的实例化的对象时,我们直接new一个类是不是感觉到这样会使代码和数据的冗余?因此我们采用了原型模式来减少原有的题。(既然我们的目标是工程师,这点我们也是应该考虑到的问题。)
那我们什么时候用到原型设计模式呢?
就像上述说的,如果要建立多个实例对象,避免冗余,这时我们应该考虑一下原型设计模
式了,例如,我们有个people类,想建立好多人的资料输出问题,还有针对于公司员工的信息,我们可以采用原型模式来减少冗余。
首先我们先介绍一下clone关键字的用法(__clone()内置函数的用法)
<?php class A{ //包含一些类的属性和方法 private $h; public function A(){ //一些初始化信息 echo "wo shi bu shi hen shuai?"; $this->h = "huahua"; } public function getH(){ echo "h is :".$this->h; } function __clone(){} } $a1 = new A(); $a2 = clone a1; $a1->getH(); $a2->getH(); ?>想上述程序输出的结果为:
wo shi bu shi hen shuai?h is : huahuah is : huahua不知道大家有没有发现用clone新建对象的时候没有调用原有类的构造函数,但其内部属性完全继承了原有对象的属性的值,这就是clone
正因为clone的出现可以明确的减少对构造函数的调用,如果针对大数据的处理(或者数据库中有大量数据要输出的时候),极大减少了代码和内存的冗余。
不知道你看到现在会不会一个疑惑:既然你的目的是减少调用的构造函数(和析构函数),那你为什么要用类呢?
这时候我只能回答:你瞅瞅OOP的好处你就知道为什么了,我们不能总停留在平常写的那种小程序的思想不能自拔,毕竟开发大程序讲究的是团队合作,你的代码用OO思想编程有助于维护和团队合作。谢谢。
以上内容简要阐述原型模式的思想,大家可以参考参考。
如果有什么问题请留言,共同进步
- 二十四设计模式之原型设计模式
- 设计模式之(二)原型模式Prototype
- 设计模式(二)之 Prototype(原型)
- 设计模式之原型
- 设计模式之原型
- 设计模式 之 原型
- 设计模式之原型
- 设计模式之原型
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之-原型模式
- 设计模式之 原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之--原型模式
- XML简单学习
- Ehcache使用(一):初步使用Ehcache
- Jmeter分布式压力测试
- [问题解决]2003 Can not connect to Mysql Server on "xxxx.xxxx.xxxx.xxxx"
- thunderbird邮件客户端(exchange server)
- 二十四设计模式之原型设计模式
- 掌握时区管理,提高工作效率
- 软文策划:定位、关键字选择、SEO优化、渠道
- Unix的起源
- Android 获取虚拟按键的高度
- 为什么手机短信长度限制70个中文、160个英文???
- ssl通信过程
- Win7 64位 mysql 5.7下载安装问题
- linux 环境中使用virsh 命令对虚拟机进行重命名