目录
原型模式
博主一句话总结(非准确):原型模式是一种创建下的设计模式,用于创建重复的对象,保证性能,在进行深拷贝时,可能会造成复杂的代码,同时需要为每一个类配备一个克隆方法,对于已经存在的类来说得修改源代码,这违背了ocp原则。
1. 原型模式的引入
原型模式,Java中的Object类是所有类的根类,Object类提供了一个clone()方法,该方法可以将一个java对象复制一份,需要实现clone的类要实现Cloneable接口,该接口表示该类能够复制而且具有复制的能力
2. 原型模式的介绍和使用场景
- 用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建对象
- 原型模式允许一个对象创建另一个可定制的对象,无需知道创建的细节
- 工作原理:通过将一个原型对象传给要发动创建的对象,这个要发动创建的对象通过请求原型模型的拷贝来完成对象的创建,即原型模式.clone()
大体上有两种使用场景
- .在需要一个类的大量对象的时候,使用原型模式是最佳选择,因为原型模式是在内存中对这个对象进行拷贝,要比直接new这个对象性能要好很多,在这种情况下,需要的对象越多,原型模式体现出的优点越明显。
- 如果一个对象的初始化需要很多其他对象的数据准备或其他资源的繁琐计算,那么可以使用原型模式。
- 当需要一个对象的大量公共信息,少量字段进行个性化设置的时候,也可以使用原型模式拷贝出现有对象的副本进行加工处理。
3. 原理结构图UML图
- Prototype:原型类,声明一个克隆自己的接口
- ConcretePrototype:具体的圆形类,实现一个克隆自己的操作
- client:发动创建的对象,让一个原型对象克隆自己,从而创建一个新的对象(属性一样)