一、概述
原型模式屬于對(duì)象創(chuàng)建模式,通過(guò)給出一個(gè)原型對(duì)象來(lái)指明所要?jiǎng)?chuàng)建的對(duì)象類型,然后用復(fù)制這個(gè)對(duì)象的方法創(chuàng)建出更多同類型的對(duì)象。
二、結(jié)構(gòu)
1、簡(jiǎn)單形式
Client:提出創(chuàng)建對(duì)象的請(qǐng)求
Prototype:抽象角色,給出所有具體原型類所需的接口
ConcretePrototype:被復(fù)制的對(duì)象
2、登記形式
PrototypeManager:創(chuàng)建并記錄具體對(duì)象
三、淺克隆與深克隆
淺克隆:僅做refrence一級(jí)的克隆,refrence所指的對(duì)象不被克隆
深克隆:將refrence所指的對(duì)象進(jìn)行遞歸克隆,需考慮克隆深度及循環(huán)克隆問題
四、動(dòng)機(jī)
替換較復(fù)雜的等級(jí)結(jié)構(gòu)的工廠方法
五、優(yōu)缺點(diǎn)
1、允許動(dòng)態(tài)地增加或減少產(chǎn)品類,且對(duì)整個(gè)現(xiàn)有的產(chǎn)品結(jié)構(gòu)沒有影響
2、提供簡(jiǎn)化的創(chuàng)建結(jié)構(gòu)
3、具有動(dòng)態(tài)加載新功能的能力
4、產(chǎn)品類不需要有確定的等級(jí)結(jié)構(gòu)
I、每一個(gè)類必須配備一個(gè)克隆方法