模板方法是经典的“四人组”设计模式之一,更正式地说,是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 所著《设计模式 —— 可复用面向对象软件的基础》一书中描述的24种模式之一。它是一种行为型设计模式,描述了一种不同对象之间通信的方式。作为一种面向对象的语言,C++ 当然完全支持模板方法模式,尽管在实现细节上存在一些 C++ 特有或独有的特性,本章将对此进行阐明。
本章将涵盖以下主题:
什么是模板方法模式,解决了哪些问题?
什么是非虚接口?
虚函数默认应该是公有的、私有的还是受保护的?
多态类中,是否应该始终将析构函数声明为虚函数且公有?