夜雨竹林
落叶无声

一、正式定义:
在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

二、实例及说明:
这个模式的重点在于提供一个算法,并让子类实现某些步骤。而子类实现的两种函数包括抽象方法和钩子方法。子类必须提供算法中某个方法或步骤的实现时,就使用抽象方法。如果算法的这个部分是可选的,就用钩子。例如冲茶和冲咖啡步骤都是一样就可以抽象为一个模板方法。但是其中某几个步骤需要在子类中实现,需要在子类中实现可以定义为抽象方法。
1)、在Swing的JFrame中继承了一个paint()方法。在默认状态下,paint()是不做事情的,因为它是一个“钩子”!通过覆盖paint(),你可以将自己的代码插入JFrame的算法中,显示出你所想要的画面。

posted on 2009-04-18 00:01  夜雨竹林  阅读(170)  评论(0编辑  收藏  举报