模板:按照模板来绘制就可以画出想要的图画,同时你可以根据自己的喜好去改变图画的颜色搭配
它为用户提供代码框架的同时提供给用户一定的灵活度,模板模式是应用最为广泛的一种设计模式,如android/ios的UI框架,模板模式是行为模式的一种
代码来源于c++编程思想
class AppFramework
{
bool _flag;
protected:
virtual void mandatoryMethod() = 0;
virtual void optionalMethod()
{
std::cout << "Do u wanna override me" << std::endl;
}
public:
AppFramework() : _flag(true) {}
void setFlag(bool flag) { _flag = flag; }
void templateMethod() {
mandatoryMethod();
if (_flag)
{
optionalMethod();
}
}
};
class MyApp : public AppFramework
{
public:
void mandatoryMethod()
{
std::cout << "MyApp: I have to do" << std::endl;
}
void optionalMethod()
{
std::cout << "MyApp: to be or not to be" << std::endl;
}
};
void TemplatePatternTest()
{
MyApp app;
app.templateMethod();
app.setFlag(false);
app.templateMethod();
}