模板方法模式的目的在于:在一个方法中定义一个算法,但是,把算法的某些步骤进行抽象。这样,我们可以把这些步骤从方法中称出,并在方法外部定义这些步骤;也可用一个接口定义这些步骤,从而使类可以提供这些步骤。
.Net框架中的ArrayList的Sort()方法,其中所进行的二个对象之间的比较就是要求所比较的对象实现IComparable或IComparer接口,以调用其中的CompareTo()或Compare()方法进行比较。
模板方法的实现可以用实现接口、重写父类的virtual方法或abstract方法来实现。
钩子的实现也是一种模板方法模式。