在模板方法中,是“框架稳定,子步骤或者应用程序变化”,这时候,考虑的是,框架调用应用程序,还是应用程序调用框架?也就是说RUN()这个函数放在哪里?这里是写在框架里,框架调用应用程序,在框架里写纯虚函数,即晚绑定。
// 第三章模板方法.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
class library
{
public:
library() {}
virtual ~library() {}
public:
void step1()
{
std::cout << "step1: library" << std::endl;
}
void step3()
{
std::cout << "step3: library" << std::endl;
}
void step5()
{
std::cout << "step5: library" << std::endl;
}
void run()
{
step1();
step2(); //支持变化,虚函数的多态调用
step3();
step4(); //支持变化,虚函数的多态调用
step5();
}
virtual void step2() = 0;
virtual void step4() = 0;
};
class application : public library
{
public:
application() {}
~application() {}
void step2()
{
std::cout << "step2 : application" << std::endl;
}
void step4()
{
std::cout << "step4 : application" << std::endl;
}
};
int main()
{
library* theApp = new application();
theApp->run();
return 0;
}
打印结果:
step1: library
step2 : application
step3: library
step4 : application
step5: library

被折叠的 条评论
为什么被折叠?



