設(shè)計(jì)模式之原型模式
時(shí)間:2020-08-25 23:55:47
手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
[導(dǎo)讀]【成功的花兒,人們只驚羨她現(xiàn)時(shí)的明艷!當(dāng)初她的芽?jī)航噶藠^斗的淚泉,撒遍了犧牲的血雨。】 ——冰心 原型模式也屬于創(chuàng)建型模式,用于創(chuàng)建重復(fù)的對(duì)象,它提供了一種創(chuàng)建相同對(duì)象的最佳方式。當(dāng)直接創(chuàng)建對(duì)象需要較大的代價(jià)時(shí),可以使用原型模式。例如對(duì)象需
|
|
struct Animal {
virtual ~Animal() {}
virtual Animal* Clone() = 0;
virtual void ShowName() = 0;
};
struct Tiger : public Animal {
Animal* Clone() override { return new Tiger(); }
void ShowName() override { std::cout << "Tiger" << std::endl; }
};
int main() {
Animal* animal = new Tiger();
animal->ShowName();
Animal* animal_copy = animal->Clone(); // 想要一個(gè)和animal完全相同的實(shí)例
animal_copy->ShowName();
return 0;
}
參考資料
https://www.runoob.com/design-pattern/prototype-pattern.html http
https://www.zhihu.com/question/52610176
往期推薦
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!