Android設(shè)計(jì)模式之原型模式

從Java的角度看,使用原型模式有個(gè)明顯的特點(diǎn),就是實(shí)現(xiàn)cloneable的clone()方法。

原型模式,能快速克隆出一個(gè)與之前存在的對(duì)象類似的另外一個(gè)我們想要的新對(duì)象。

意圖

原型實(shí)例指定創(chuàng)建對(duì)象的種類,通過(guò)拷貝這些原型創(chuàng)建新的對(duì)象。

結(jié)構(gòu)圖和代碼

結(jié)構(gòu)圖非常簡(jiǎn)單,以Intent為例:

如果需要?jiǎng)?chuàng)建的原型數(shù)目不固定,可以創(chuàng)建一個(gè)原型管理器,在復(fù)制原型對(duì)象之前,客戶端先在原型管理器中查看是否存在滿足條件的原型對(duì)象。如果有,則直接使用,如果沒(méi)有,克隆一個(gè)。這種稱作登記形式的原型模式。

適用原型模式可以對(duì)客戶端隱藏產(chǎn)品的具體類,因此減少了客戶知道的數(shù)字的數(shù)目,此外是客戶無(wú)需改變?cè)湍J降娜毕菔敲總€(gè)原型的子類都必須實(shí)現(xiàn)Cloneable接口,這個(gè)實(shí)現(xiàn)起來(lái)有時(shí)候比較困難。

效果

(1)創(chuàng)建型模式

(2)運(yùn)行時(shí)刻增加和刪除產(chǎn)品

(3)改變只以指定新對(duì)象

(4)改變結(jié)構(gòu)以指定新對(duì)象

(5)減少子類的構(gòu)造

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原型模式 1.定義: 用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并通過(guò)copy這些原型創(chuàng)建新的對(duì)象。 2.使用場(chǎng)景: 類初始化...
    TangBuzhi閱讀 706評(píng)論 0 0
  • 1大同小異的工作周報(bào) Sunny軟件公司一直使用自行開發(fā)的一套OA (Office Automatic,辦公自動(dòng)化...
    justCode_閱讀 1,244評(píng)論 0 3
  • 1 場(chǎng)景問(wèn)題# 1.1 訂單處理系統(tǒng)## 考慮這樣一個(gè)實(shí)際應(yīng)用:訂單處理系統(tǒng)。 現(xiàn)在有一個(gè)訂單處理的系統(tǒng),里面有個(gè)...
    七寸知架構(gòu)閱讀 4,669評(píng)論 3 63
  • 內(nèi)容 文字方法 strokeText(text, x, y) 描邊寫字 fillText(text, x, y)...
    zjxl閱讀 317評(píng)論 0 0
  • 好久不見(jiàn)啊。偶然翻起朋友圈,看你曬出了影院的照片,旁邊還有一位姑娘,她是你曾對(duì)我說(shuō)起過(guò)的不可能。心頭猛虎聲嘶力竭之...
    慕蔚150907閱讀 232評(píng)論 0 0

友情鏈接更多精彩內(nèi)容