设计模式 原型模式
本文将介绍设计模式中的原型模式。
一、什么原型模式?
通过请求原型对象复制自己的方式,实现对象的快速创建。
二、拷贝地址、浅克隆与深克隆
1. 拷贝地址
不复制对象,只返回原对象的地址。
2. 浅克隆
复制对象,对象的引用类型成员变量只拷贝地址,返回新对象的地址。
3. 深克隆
复制对象,对象的引用类型成员变量也进行克隆,返回新对象的地址。
三、实现
1. 角色
- Prototype 抽象原型类:
- 所有具体原型类的公共父类
- 声明了克隆方法
- ConcretePrototype 具体原型类:
- 实现了克隆方法,在克隆方法中返回自己的克隆
2. 简单示例
Prototype:
1 |
|
ConcretePrototype:
1 |
|
四、优缺点
1. 优点
- 可以简化对象的创建过程
- 不需要额外的工厂类,简化了创建结构
2. 缺点
- 如果需要实现深克隆,则需要编写较为复杂的代码,且对象的引用类型成员变量也得实现深克隆
参考
- 《Java 设计模式》