模版方法 是一种行为设计模式, 它在基类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。
- Display 抽象类:抽象类(AbstractClass),定义模板方法及模板方法使用的抽象方法。
- CharDisplay 类、StringDisplay 类:具体类(ConcreteClass),实现 AbstractClass 定义的抽象方法。
- 在父类模板方法中编写的算法(Show()),无需在子类中重复编写。
- 需要理解父类中的抽象方法(Show()),才能够编写出子类(CharDisplay, StringDisplay)。
- 父类变量保存子类实例,然后调用 Show(),无论哪个子类实例都能正常运行,符合 LSP(里氏替换原则)。