zoukankan      html  css  js  c++  java
  • 设计模式——模板模式(C++实现)

    模板模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
     
    模板模式通过把不变的行为搬移到超类,去除子类中的重复代码来体现它的优势。
     
    通过继承和多态来实现。
     
    行为型模式。
     
    spp业务框架中的server_task(CServerTask类)就是这么一个东西。非常常用的一个模式
     
     
    使用场景: 1、有多个子类共有的方法,且逻辑相同。 2、重要的、复杂的方法,可以考虑作为模板方法。
     
     
     1 #include <iostream>
     2 #include <string>
     3 
     4 using namespace std;
     5 
     6 class CDataParse
     7 {
     8 public:
     9         virtual void ReadData() = 0;
    10         virtual void ProcessData() = 0;
    11         virtual void WriteData() = 0;
    12 
    13         virtual void ParseDataAndGenerateOutPut()
    14         {
    15                 ReadData();
    16                 ProcessData();
    17                 WriteData();
    18         }
    19 
    20 };
    21 
    22 class CSVDataParse: public CDataParse
    23 {
    24 public:
    25         void ReadData()
    26         {
    27                 cout<< "CSVDataParse Reading......"<< endl;
    28         }
    29 
    30         void ProcessData()
    31         {
    32                 cout<< "CSVDataParse ProcessData......"<< endl;
    33         }
    34 
    35         void WriteData()
    36         {
    37                 cout<< "CSVDataParse WriteDataing......"<< endl;
    38         }
    39 
    40         void Process()
    41         {
    42                 ParseDataAndGenerateOutPut();
    43         }
    44 };
    45 
    46 
    47 int main(int argc, char* argv[])
    48 {
    49         CSVDataParse* cSvDataParse = new CSVDataParse();
    50 
    51         cSvDataParse->Process();
    52 
    53         cout<< endl;
    54 
    55         return 0;
    56 }
    57 ////////////////////////
    58 [root@ ~/learn_code/design_pattern/8_template]$ ./template
    59 CSVDataParse Reading......
    60 CSVDataParse ProcessData......
    61 CSVDataParse WriteDataing......
  • 相关阅读:
    弱鸡儿长乐爆肝旅Day8
    弱鸡儿终于没爆零Day7
    弱鸡儿长乐爆零旅Day6
    弱鸡儿长乐爆零旅Day5
    弱鸡儿长乐爆零旅Day4
    D1字符串哈希
    Tarjan算法
    弱鸡儿长乐爆零旅Day3
    弱鸡儿长乐爆零旅Day2
    弱鸡儿长乐爆零旅Day1
  • 原文地址:https://www.cnblogs.com/070412-zwc/p/6814995.html
Copyright © 2011-2022 走看看