### 原型模式
用原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象(摘抄)
原型模式的作用在于多次創建類似對象時可以減少構造函數使用,減少代碼,同時也可以提高性能。通過查看別人的博客和一些資料得知,用clone方法復制對象是直接對內存操作比重新生成一個對象效率高很多,尤其是數據十分多的對象。
~~~
class Prototype implements Cloneable
{
public Object clone()
{
return (Object)this.clone();
}
}
class Client{
public static void main()
{
Prototype a = new Prototype();
while(1){
Prototype B = (Prototype) a.clone();
}
}
}
~~~
原型模式是很簡單的模式,繼承一個接口,重寫一個方法就ok了,需要注意的一點就是 深拷貝 和 淺拷貝
java的基本數據類型會clone方法會直接深拷貝,而引用數據類型則需要自己手動深拷貝
~~~
class Prototype implements Cloneable
{
String a;
public Object clone()
{
Prototype prototype = (Prototype) this.clone();
prototype.a = this.a;
return prototype;
}
}
~~~
### 總結
因為我對原型模式的應用比較少,以前都沒有怎么考慮到效率的問題,這次學到后,以后會多留意留意。
個人感覺原型模式最大的好處就是新建對象時不需要再一個參數一個參數的去設置了,因為有些參數是相同的,直接clone方便很多,尤其是今天看到大家都說原型模式運用得好會提升整個軟件的運行效率后,感覺原型模式好處也是大大滴!!!
- 前言
- (1)代碼無錯就是優?——簡單工廠模式
- (2)商場促銷——策略模式
- (3)&(4)&(5) 設計模式原則
- (6)穿什么有這么重要?——裝飾模式
- (7)為別人做嫁衣——代理模式
- (8)雷鋒依然在人間——工廠方法模式
- (9)簡歷復印——原型模式
- (10)考題抄錯會做也白搭——模板方法模式
- (11)迪米特法則
- (12)牛市股票還會虧錢?—— 外觀模式
- (13)好菜每回味不同——建造者模式
- (14)老板回來,我不知道——觀察者模式
- java實現事件委托
- (15)就不能不還DB嗎?—— 抽象工廠模式
- (16)無盡加班何時休息——狀態模式
- (17)在NBA我需要翻譯——適配器模式
- (18)如果再回到從前——備忘錄模式
- (19)分公司=部門——組合設計模式
- (20)想走?可以!先買票——迭代器模式
- (21)有些類也需計劃生育——單例模式
- (22)手機軟件何時統一——橋接模式
- (23)烤羊肉串引來的思考——命令模式
- (24)加薪非要老總批?——職責鏈模式
- (25)世界需要和平——中介者模式
- (26)項目多也別傻做——享元模式
- (28)男人和女人——訪問者模式