码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式7:模板方法模式

时间:2014-10-20 19:02:10      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   sp   div   2014   

一、我的描述

  模板方法模式是将不变的行为搬到超类中,去除子类中重复的代码来体现它的优势,提供了很好的代码复用。

  我的理解就是就像是咱们学画画的时候,老师说大家比着这个苹果,然后画一幅自己的苹果,然后大家都在那画,但是大家画出来的都不相同,但是呢我们相同的是我们比照的模式是相同的苹果。

  再举个例子:某一次考试,同样的试卷,A得到90分,B得到80分。这次考试相同的是:A和B的试卷是相同的,但是他俩得分不一样是因为他们的答案不一样。那么延伸到模板方法模式中,不变的是试卷的试题,我们把它搬到超类中。不同的是这次考试中我们的答案。 

二、UML 图

  bubuko.com,布布扣

那么针对于我上面考试的例子,我的UML图应该是:

  bubuko.com,布布扣

三、我的考试模板代码实现

#include<iostream>
using namespace std;

class Test {
public:
    void Question() {
        cout << "Question1 : who is Feng‘jie?" << endl;
    }

    virtual void Answer() {}
};

class Answer1 : public Test {
public:
    virtual void Answer() {
        cout << "Answer1‘s answer: " << "C" << endl;
    }
};

class Answer2 : public Test {
public:
    virtual void Answer() {
        cout << "Answer2‘s answer: " << "B" << endl;
    }
};

int main() 
{
    Test *p_test1 = new Answer1();
    p_test1->Question();
    p_test1->Answer();
    delete p_test1;

    Test *p_test2 = new Answer2();
    p_test2->Question();
    p_test2->Answer();
    delete p_test2;
    
    return 0;
}

 

  

设计模式7:模板方法模式

标签:style   blog   http   color   io   os   sp   div   2014   

原文地址:http://www.cnblogs.com/457220157-FTD/p/4037934.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!