一、原型設計模式的定義與特點
原型設計模式:用一個已經創建的實例作爲原型,通過複製該原型對象來創建一個和原型相同或相似的新對象。
應用場景:
- 對象之間相同或相似,即只是個別的幾個屬性不同的時候。
- 對象的創建過程比較麻煩,但複製比較簡單的時候。
模式的結構
原型模式包含以下主要角色。
- 抽象原型類:規定了具體原型對象必須實現的接口。
- 具體原型類:實現抽象原型類的 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
}
}