设计模式之模板方法模式
作为设计模式的一种,模板方法模式将主体逻辑作为模板,而用户只需要专心实现自己的独有逻辑,比如说一个“算法”调用了多个函数,这多个函数的调用已经被模板化了,然后用户只要定义某个函数的细节即可达到实现新的“算法”的目的。整个过程来看,用户是不需要知道整个“算法”的流程细节,只需要知道“算法”中需要依赖的某个函数的执行结果。
说到这里可能很抽象。。。所有我们看先来看类图吧,然后根据例子来说明。
类图
用户通过实现抽象类来写自己的逻辑(实现抽象方法)。
这里抽象类的templateMethod方法需要调用抽象方法abstractMethod1和抽象方法abstractMethod2和具体方法specificMethod
void templateMethod(){
abstractMethod1();
abstractMethod2();
specificMethod();
}
其中抽象方法是需要用户(即实现模板方法)自定义的,并且用户不需要了解templateMethod方法的调用顺序和逻辑,在完成抽象方法的重写之后即可实现自定义的templateMethod方法。这里的specificMethod是模板中固有的方法,可以作为对抽象方法执行结果