依旧先是概念,
原型模式
原型模式:可以通过一个对象创建对象群,并且可以拷贝创建新的实例。原型模式实际就是一个对象创建另一个对象,而且新的对象还具有原本的对象的特性。
原型模式结构图:
原型模式其实就是一个对象在创建另外一个可定制大的对象,并且不需要知道任何创建的细节。
一般初始化的信息不发生变化的情况下,克隆是一个好办法。即隐藏了对象的细节,又大大提高了性能。
不用重新初始化对象,动态地获得对象地运行时状态。
浅复制和深复制
浅复制
被复制对象地所有变量都含有与原来地对象相同的值,而所有地对其他对象地应用都仍指向原来的对象。
深复制
但当需要把复制的对象都引用一遍,则需要把引用对象地变量指向复制过的新对象,而不是原有地被应用的对象。
三段代码的地址都在下面:
https://github.com/FastStonewkx/hometown/tree/master/Propertype
运行结果(略)一毛一样。
下面的来自于网络:
主要解决:运行期间建立和删除原型
使用时机:
1.当一个系统独立与产品构建,构成和表示时,
2.当要实例化的类是在运行时刻指定时,如动态装载。
3.为避免创建一个与产品类层次平行的工厂类层次时。
4.当一个类只能有几个不同状态组合中的一种时,建立相应的数目的原型并克隆也许比每次用合适的状态手工实例化该类更方便一些。呵呵,有点懵
任何解决:利用已有的原型对象,快速生成和原型对象一样的实例。
优点
1.性能提高
2.逃避构造函数的约束
缺点
1.配备克隆方法需要对类的功能都要考虑到,特别是当一个类应用不支持串行化的简介对象,或引用含有循环结构的时候。
2.必须实现Cloneable接口
使用场景(略)
接触的面比较少,慢慢体会吧
参考地址:
http://www.runoob.com/design-pattern/prototype-pattern.html
这地方东西还是比较适合我的,多多联系哈。