成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

C++設計模式之模板方法模式怎么實現(xiàn)

這篇文章主要介紹了C++設計模式之模板方法模式怎么實現(xiàn)的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇C++設計模式之模板方法模式怎么實現(xiàn)文章都會有所收獲,下面我們一起來看看吧。

10年積累的成都網(wǎng)站設計、網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站策劃后付款的網(wǎng)站建設流程,更有東川免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

模板方法模式使用繼承來實現(xiàn)模式的功能,在基類使用一個方法來定義算法的各個步驟,這些步驟(方法)的具體實現(xiàn)會放到子類中,通過這樣來實現(xiàn)不同算法對象的算法拼合,完成該對象整體算法的實現(xiàn)。

作用

模板方法中定義了具體操作中所使用算法的各個步驟,并將其實現(xiàn)交由子類完成,從而實現(xiàn)多種不同的功能;

類視圖

C++設計模式之模板方法模式怎么實現(xiàn)

實現(xiàn)

class Lunch
{
public:
  Lunch(){}
  virtual ~Lunch(){}

  void feed()
  {
    cooking();
    eating();
    cleaning();
  }
  virtual void cooking()=0;
  virtual void eating()
  {
    cout<<"I am eating,Please don't disturb me\n";
  }
  virtual void cleaning();
};


class MCMeal : public Lunch
{
public:
  MCMeal(){}
  virtual ~MCMeal(){}

  void cooking()
  {
    cout<< "I am cooking Mc Meal\n";
  }
  void cleaning()
  {
    cout<< "I am cleaning Mc plates";
  }
};

class KFCMeal : public Lunch
{
public:
  KFCMeal() {}
  virtual ~KFCMeal(){}

  void cooking()
  {
    cout<< "I am cooking KFC Meal\n";
  }
  void eating
  {
    cout<< "KFC Meal is good\n";
  }
  void cleaning()
  {
    cout<< "I am cleaning KFC plates and cups\n";
  }
};


int main()
{
  Lunch* meal1 = new McMeal();
  meal1.feed();
  Lunch* meal2 = new KFCMeal();
  meal2.feed();
}

應用場景

  • 當一個算法功能需要能夠改變,并通過在子類中對功能重寫來實現(xiàn)這種變化;

  • 當算法能夠?qū)崿F(xiàn)統(tǒng)一步驟,并且可以劃分不變部分和可變部分,將可變互粉在子類中實現(xiàn)算法不同的變化;

關(guān)于“C++設計模式之模板方法模式怎么實現(xiàn)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“C++設計模式之模板方法模式怎么實現(xiàn)”知識都有一定的了解,大家如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱欄目:C++設計模式之模板方法模式怎么實現(xiàn)
文章位置:http://jinyejixie.com/article24/gpspce.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、微信小程序、網(wǎng)站維護、標簽優(yōu)化品牌網(wǎng)站建設、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
嘉兴市| 白山市| 舒城县| 永清县| 贵定县| 枣阳市| 塘沽区| 扶绥县| 迁西县| 德昌县| 讷河市| 通许县| 吴旗县| 和平区| 杭锦后旗| 象州县| 景洪市| 泽州县| 枣强县| 岢岚县| 潜江市| 潜江市| 岱山县| 奉贤区| 泽州县| 平果县| 黎川县| 哈巴河县| 赤峰市| 忻州市| 蓝山县| 敦化市| 吉木萨尔县| 高邑县| 烟台市| 维西| 罗源县| 榕江县| 手游| 松溪县| 获嘉县|