【C++設(shè)計(jì)模式】原型模式 淺拷貝

/* 小魚號(hào)的代碼日志
 * 設(shè)計(jì)模式
 * 原型模式
 * 用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且
 * 通過拷貝這些原型,創(chuàng)建新的對(duì)象
 * 一個(gè)對(duì)象在創(chuàng)建另外一個(gè)可定制的對(duì)象
 * 無需知道創(chuàng)建的細(xì)節(jié)
 * 克隆羊
 */

#include<iostream>
#include<list>
using namespace std;

class Animal
{
public:
    Animal(string name,int age)
    {
        m_name = name;
        m_age = age;
    }
    Animal(const Animal& animal)
    {
        m_name = animal.m_name;
        m_age = animal.m_age;
    }
    void showInfo()
    {
        cout << "name:" << m_name << " age:" << m_age << endl;
    }
    virtual Animal* clone() = 0;
protected:
    string m_name;
    int m_age;
};

class Sheep:public Animal
{
public:
    Sheep(string name,int age) :Animal(name,age)
    {
    }
    Sheep(const Sheep& animal) :Animal(animal)
    {
    }
    Animal* clone()
    {
        return new Sheep(*this);
    }
};

void testPrototype()
{
    cout << "prorotype patterns" << endl;
    Animal* sheep = new Sheep("tom",12);
    sheep->showInfo();
    Animal* cloneSheep = sheep->clone();
    cloneSheep->showInfo();
}
最后編輯于
?著作權(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)容

  • 簡(jiǎn)介 所謂原型模式就是用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過復(fù)制這些原型創(chuàng)建新的對(duì)象。舉一個(gè)簡(jiǎn)單的例子,一個(gè)人想要...
    PeterZ1997閱讀 375評(píng)論 0 1
  • “對(duì)象創(chuàng)建”模式 通過“對(duì)象創(chuàng)建”模式繞開直接new一個(gè)具體的類型,來避免對(duì)象創(chuàng)建(new)過程中所導(dǎo)致的緊耦合(...
    故事狗閱讀 1,020評(píng)論 0 1
  • 原型模式:一種創(chuàng)建型設(shè)計(jì)模式 應(yīng)用場(chǎng)景:一個(gè)基類,有很多派生類,在實(shí)際開發(fā)中,經(jīng)常會(huì)使用一個(gè)基類指針,將其指向不同...
    JeremyYv閱讀 362評(píng)論 0 3
  • 1.原型模式簡(jiǎn)介 ? ?原型模式的核心思想是,通過拷貝指定的“原型實(shí)例(對(duì)象)”,創(chuàng)建跟該對(duì)象一樣的新對(duì)象。簡(jiǎn)單理...
    一路向后閱讀 541評(píng)論 0 0
  • 原型模式,用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過拷貝這些原型創(chuàng)建新的對(duì)象。 原型模式結(jié)構(gòu)圖 原型模式基本代碼 原型...
    涵仔睡覺閱讀 1,613評(píng)論 0 0

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