模板方法模式(Template Method Pattern)又称模板模式(Template Pattern),是设计模式中最简单的一种。该模式定义了一个操作的算法骨架(模板),并将某些步骤延迟到子类中,使得子类可以重新定义算法的特定步骤而不改变算法的结构。
在该模式中,父类定义了业务的整体实现过程,但是对于某些步骤的具体实现逻辑,先暂时只定义为抽象方法。在定义子类时,实现/重写这些方法。这种模式主要解决了在许多情况下,我们并不知道未来实际使用中需要如何具体实现甚至可能会出现多个具体实现的情况。
它是面向对象的23种设计模式中的行为模式之一。
这个模式的核心在于:
举例来说,我们可以定义一个音乐播放器的类,并约定了播放器启动时的业务。具体来说:
然而,存在多个播放器(如酷猫音乐、酷他音乐盒),它们的主界面和用户定制操作各不相同,因此,我们可以仅先定义以上操作的抽象方法,并将具体操作的实现留给子类来完成。
通过模板方法模式,可以更好地组织程序结构,并保持代码的灵活性和可扩展性。