一、原型设计模式的定义与特点
原型设计模式:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。
应用场景:
- 对象之间相同或相似,即只是个别的几个属性不同的时候。
- 对象的创建过程比较麻烦,但复制比较简单的时候。
模式的结构
原型模式包含以下主要角色。
- 抽象原型类:规定了具体原型对象必须实现的接口。
- 具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。
- 访问类:使用具体原型类中的 clone() 方法来复制新的对象。
二、原型设计模式的实现
实现原理:主要用到了java Object类中的clone()方法
代码实现:
package test;
/**
* 原型设计模式Demo-孙悟空看我72变
*/
public class SunWuKong implements Cloneable {
public SunWuKong() {
//1.从石头里蹦出来
//2.取金箍棒
//3.大闹天宫
//。。。。。。。
//总之,再创建一个孙悟空时太麻烦了。不如直接复制一个
}
/**
* 于是孙悟空采用72变:实现java.lang包下的Cloneable接口,但实际实现调用的是Object.clone方法
*/
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
public static void main(String[] args) throws CloneNotSupportedException {
SunWuKong sunWuKong = new SunWuKong();
SunWuKong sixEar = (SunWuKong) sunWuKong.clone();
System.out.println(sunWuKong==sixEar); //false
}
}