设计模式之原型模式
2015-12-19 13:31
218 查看
定义:
用原型实例指定创建对象的种类,并且通过拷贝这些对象创建新的对象。
角色:
原型类(Prototype):声明一个克隆自身的接口;
具体原型类:继承自原型类,实现原型类的克隆接口。
UML图:
![](http://img.blog.csdn.net/20151219133442248?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注:
原型模式就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。但是在使用原型模式时,需要注意浅复制与深复制的问题。如果字段是值类型的,则对该字段执行逐位复制;如果字段是引用类型的,则只复制引用而不复制引用的对象,因此,原始对象与其复本引用同一对象。
浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象;
深复制:把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。
用原型实例指定创建对象的种类,并且通过拷贝这些对象创建新的对象。
角色:
原型类(Prototype):声明一个克隆自身的接口;
具体原型类:继承自原型类,实现原型类的克隆接口。
UML图:
注:
原型模式就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。但是在使用原型模式时,需要注意浅复制与深复制的问题。如果字段是值类型的,则对该字段执行逐位复制;如果字段是引用类型的,则只复制引用而不复制引用的对象,因此,原始对象与其复本引用同一对象。
浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象;
深复制:把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。
相关文章推荐
- 有沃更精彩,沃课堂理想的移动学习平台
- Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!
- 使用.Net开源项目NPOI操作Excel、Word、ppt
- ios触摸事件三:UIResponder
- android网络开发之测试机连接到服务器上面
- Gridview网格视图
- 机器学习(Machine Learning)心得体会(4)神经网络Exercise 4:Neural Networks
- 第十四周实践项目1--验证折半查找
- SpringMVC DWR 注解
- ...
- 创建一个10G可用空间的RAID5
- JAVA数组初始化及应用
- Android:自定义View 初步之旅随记(一)
- List和Tuple类型
- glViewport()函数和glOrtho()函数的理解(转)
- Expected identifier or '(' Unknown type name 'NSString'
- Java基础学习总结(32)——Java项目命名规范
- Java基础学习总结(32)——Java项目命名规范
- Java基础学习总结(32)——Java项目命名规范
- ubuntu14.04下配置opencv报错处理方法