模板模式,顾名思义这种模式就是提供一种模板,一种什么模板呢?模板模式封装了一个算法步骤,并允许子类为一个或多个方法提供实现。模板模式可以使子类在不改变算法结构的情况下,重新定义算法中的某些步骤。简单的说,父类就是一个模板,子类继承父类之后,可以直接使用父类提供的方法和算法步骤,也可以重写父类的方法或实现父类中的抽象方法来自定义自己的特色。
举个例子,泡咖啡和泡茶有相同的步骤和相似的方法。我们可以设计一个模板类,将这些步骤封装在模板中,并在模板类中实现某些共有的方法,而将它们特有的方法设计为抽象方法,使子类独自实现
我们在很多地方都见过模板模式的影子,如各种框架,java提供的排序工具Arrays.sort()等等。
总结:在设计可拓展的类的时候,我们可以设计一个模板去封装相应的算法和方法,子类提供实现。