1. 模板模式
对于流程一致的一个事物,但是某些步骤的细节不一样。在基类中构造出该事物的所有流程,细节的不同在子类中实现;
模板方法模式:
定义一个操作中算法的骨架,但是将一些步骤延迟到子类中。模板方法使得可以不改变一个算法的机构就可以重新定义该算法的某些特定步骤;
class Template {
public:
void question1() {
cout << "question1:ABC?" << endl;
}
void question2() {
cout << "question2:DEF?" << endl;
}
void test() {
question1();
answer1();
question2();
answer2();
}
private:
virtual void answer1() {
cout << "answer1:" << endl;
}
virtual void answer2() {
cout << "answer2:" << endl;
}
};
class TestPaper1 :public Template {
private:
virtual void answer1() {
cout << "answer1:111" << endl;
}
virtual void answer2() {
cout << "answer2:111" << endl;
}
};
class TestPaper2 :public Template {
private:
virtual void answer1() {
cout << "answer1:222" << endl;
}
virtual void answer2() {
cout << "answer2:222" << endl;
}
};
int main() {
TestPaper1 t1;
t1.test();
TestPaper2 t2;
t2.test();
return 0;
}