成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++ 慣用法之 Policy-based design

開發 前端
Policy-based 是 C++ 的一種基于模板和繼承的設計方法。通過模板方式可以實現在編譯期給指定的類配置方法,而傳統的策略模式則是在運行期對類的方法進行動態配置。

一、背景

Policy-based 是 C++ 的一種基于模板和繼承的設計方法。通過模板方式可以實現在編譯期給指定的類配置方法,而傳統的策略模式則是在運行期對類的方法進行動態配置。

所謂設計模式沒有一定不變的使用準則,同一個問題可以有多種模式來解決,采用有效的設計模式可以減少重復性代碼以及用最小的改動來應對變化。多了解一種模式,可以增加一種解決問題的思路。

二、Policy-based design

1.概述

該模式中的繼承是 implement-by 的關系,而非 Is-A 的關系,其重點是模板而非繼承。

2.問題描述

假設一個類提供一個對外的接口,但在不同的場景中有不同的實現方式,以下是一種常見的實現代碼:

class demoClass
{
public:
  void func(int type)
{
    //根據場景指定實現方式
    switch (type)
    {
    case 1:
      func1(); break;
    case 2:
      func2(); break;
    case 3:
      func3(); break;
    default:
      break;
    }
  }
private:
  void func1() { cout << "used func1" << endl; }//不同的實現方式
  void func2() { cout << "used func1" << endl; }
  void func3() { cout << "used func1" << endl; }
};

在以上代碼中通過傳入一個標記參數 type 來實現不同的方法調用,當需要增加更多的實現方式時,需要在類的方法中增加相應的判斷代碼,對既有代碼進行修改意味著增加了出錯的可能。

3.使用 Policy-based

上述問題的解決可以有多種方式,本文記錄一下 Policy-based design 方式。

template<typename T>
class demoClass:public T
{
};

class func_policy1
{
public:
  void func() { cout << "used func1" << endl; }
};
class func_policy2
{
public:
  void func() { cout << "used func2" << endl; }
};

int main()
{
  demoClass<func_policy1> demo;
  demo.func();

  system("pause");
  return 0;
}

圖片圖片

責任編輯:趙寧寧 來源: 編程猿來如此
相關推薦

2024-02-01 00:10:21

C++PIMPL編程

2021-06-09 09:49:35

C++RAII語言

2011-06-09 15:15:52

RAII

2009-12-14 10:03:57

Ruby慣用法

2015-07-13 09:46:44

Java習慣用法

2011-07-15 00:47:13

C++多態

2011-07-14 17:45:06

CC++

2011-07-20 10:06:54

CC++const

2010-02-06 16:05:51

C++ Vector

2011-07-10 15:26:54

C++

2011-07-13 18:24:18

C++

2015-12-28 13:45:53

Windows 10照片應用

2010-02-06 16:34:40

C++ Memento

2011-04-07 16:34:05

staticC++

2011-04-19 16:38:00

對象指針指針C++

2024-05-27 00:40:00

C++bitset

2021-10-12 13:35:30

C++Set紅黑樹

2023-11-22 12:25:05

C++RTTI

2020-07-30 12:40:35

CC++編程語言

2010-02-04 16:35:24

C++ delete
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久夜视频 | 色99视频 | 日韩色在线 | 欧美日韩精品一区 | 亚洲国产高清在线观看 | 欧美日韩国产在线观看 | 日韩有码一区二区三区 | 欧美日韩国产精品 | 一区二区av | 日韩免费高清视频 | 成年人精品视频在线观看 | 视频一区二区中文字幕日韩 | 九九热国产视频 | 欧美日韩三级在线观看 | 久久日韩精品 | 婷婷精品 | 亚洲国产一区二区三区四区 | 日韩精品一区二区三区在线观看 | 国产成人福利在线观看 | 欧美a∨| 欧美日韩电影免费观看 | 亚洲激情第一页 | 国产午夜精品一区二区三区四区 | 久久免费精品视频 | 久草精品视频 | 91色站| 中文字幕一区二区三区在线乱码 | 欧美精品久久久久 | 99re在线播放 | 久久久亚洲一区 | 亚洲国产aⅴ精品 | 日韩中字幕 | 成人影院在线 | 欧美国产一区二区 | 亚洲精品大片 | 精品国产一区二区在线 | 欧美成人a| 一区二区免费 | 精品国产不卡一区二区三区 | 91久久精品视频 | 日韩中文字幕免费 |