四、设计模式之原型模式
所属类型 | 定义 |
---|---|
创建型 | 用原型实例创建对象的种类, 并且copy这些 原型创建新的对象 |
能帮我们干什么?
主要解决什么问题?
主要解决的是 对象创建性能的问题。
优缺点
优点
- 非常
- 简单 ,一个clone方法,通过clone方法进行对象的
- 性能好,因为是在内存中copy。
- 没有构造函数的约束
缺点:
- 没有构造函数的约束
使用的场景
1. 资源优化场景:创建资源比较耗时耗资源
2. 性能和安全的考虑
3. 一个对象,多个使用者的场景。
一般是和工厂模式配合使用。原型模式创建对象,工厂模式提供给使用者。
实现
实现Clone接口
注意事项:
难度: ⭐️
public class BasePrototypeObject implements Cloneable{
private String name;
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
总结
NOTE:
- 构造函数不会执行。
内部走的native方法,从内存中二进制流copy。
- 深copy 和 浅 copy : clone只是浅copy
- clone和final关键字冲突。