设计模式之原型模式–打印机快速复制的原理
原型模式
是一个克隆模式,以一个原型进行克隆,复制。
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
为什么要使用原型模式
因为原型模式可以克隆整个对象而不用重新生成。
如果有一个订单对象,你要是重新生成,需要再次查询数据库,这是一个很耗时的操作,如果直接复制就不需要耗时了。
在php里面实现很简单,每个类有__clone
魔术方法,实现这个方法就好了。
先看不实现这个方法的克隆。
1 | /** |
可以看到成功克隆过来了,两个对象互不影响。
我们看一下修改第二个对象的arr
属性呢
1 |
|
修改数组也没问题,也就是说,直接使用clone就可以完成深复制的拷贝操作。php本身通过clone关键字完成了原型模式。
代码放在了我的github上面。