设计模式-原型模式
来源:互联网 发布:java中tomcat安装教程 编辑:程序博客网 时间:2024/06/14 19:52
介绍
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。
优点
- 性能提高。
- 简化对象的创建
注意事项
- 使用原型模式复制对象不会调用类的构造方法。
- 有深拷贝与浅拷贝。
结构图
案例
Prototype 类
class Prototype implements Cloneable { public Prototype clone(){ Prototype prototype = null; try{ prototype = (Prototype)super.clone(); }catch(CloneNotSupportedException e){ e.printStackTrace(); } return prototype; }}
ConcretePrototype 类
class ConcretePrototype extends Prototype{ public void show(){ System.out.println("原型模式实现类"); }}
Client类
public class Client { public static void main(String[] args){ ConcretePrototype cp = new ConcretePrototype(); for(int i=0; i< 10; i++){ ConcretePrototype clonecp = (ConcretePrototype)cp.clone(); clonecp.show(); } }}
浅克隆和深克隆
浅克隆
只负责克隆按值传递的数据(比如基本数据类型、String类型),而不复制它所引用的对象,换言之,所有的对其他对象的引用都仍然指向原来的对象。
深克隆
除了浅度克隆要克隆的值外,还负责克隆引用类型的数据。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深度克隆把要复制的对象所引用的对象都复制了一遍,而这种对被引用到的对象的复制叫做间接复制。
说简单点就是复制值(浅克隆)还是引用(深克隆).深克隆还存在一个死循环的问题,所以需要多加注意。
阅读全文
0 0
- 设计模式:原型模式
- 设计模式------原型模式
- 设计模式 原型模式
- 设计模式-【原型模式】
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式- 原型模式
- 设计模式:原型模式
- 设计模式 - 原型模式
- 设计模式-原型模式
- 【设计模式】原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 【设计模式】原型模式
- 设计模式----原型模式
- 设计模式------原型模式
- 2017全球软件架构技术大会特邀四十位技术领袖以及一线实战专家
- Java初学者的学习路线建议
- 3158: 千钧一发/3275: Number
- Linux系统教程
- 比较好用的java导出大数据量Excel
- 设计模式-原型模式
- echarts 地图类型热度图 visualMap 图列数值导致 地图发生严重的显示bug
- 读取cpp文件处理
- HashPasswordForStoringInConfigFile 已过时
- 质因数分解(唯一分解定理)
- 【FZU
- 每天一点积累(一二)---JVM之GC垃圾回收
- 设计模式-模板方法模式
- cordova 华为cordova-plugin-image-picker 闪退处理