模板方法模式:
在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得
子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。策略模式和模板方法模式都
是封装算法,一个组合、一个继承。
模板方法模式对于框架创建者来说,简直棒极了,由框架控制如何做事情,而由你控制指定框架
算法中每个步骤的细节。
在写模板方法的时候,应当尽量控制基类的抽象方法的数量,数量太多,子类中实现这些方法会
很麻烦,数量太少,则可能没有弹性,具体要根据实际情况控制。在实现模板方法模式的基类的时候,
如果某些步骤是可选的,你可以将这些步骤实现成钩子(非纯虚函数),而非抽象方法,这样也可以让
抽象类的子类减轻负荷。
子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。策略模式和模板方法模式都
是封装算法,一个组合、一个继承。
模板方法模式对于框架创建者来说,简直棒极了,由框架控制如何做事情,而由你控制指定框架
算法中每个步骤的细节。
在写模板方法的时候,应当尽量控制基类的抽象方法的数量,数量太多,子类中实现这些方法会
很麻烦,数量太少,则可能没有弹性,具体要根据实际情况控制。在实现模板方法模式的基类的时候,
如果某些步骤是可选的,你可以将这些步骤实现成钩子(非纯虚函数),而非抽象方法,这样也可以让
抽象类的子类减轻负荷。