模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法可以使子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。
方法模式的特点:把不变的行为搬到超类,去除子类中重复的代码来体现他的优势。
当不变的和可变的行为在方法中混合在一起时,不变的行为就会在子类中重复出现,模板方法模式就是将这些不变的行为搬移到一个超类中,避免重复代码。
注:模板方法可以使用钩子来控制是否执行某一段代码。(如以下代码,子类可以选择覆盖 condition() 方法来控制是否实现 action2() )
void doAction(){
action1();
if(condition()){
action2();
}
}
boolean condition(){
return true;
}
JUnit中的TestCase以及它的子类就是一个模板方法模式的例子。
public void runTest() throws Throwable {
setUp();
try {
runTest();
}
finally {
tearDown();
}
}
java的 数组排序是典型的模板方法。Sort()
本文深入探讨了模板方法模式的核心概念,包括其特点、优势及应用场景。通过实例分析,展示了如何利用模板方法模式实现代码复用与算法抽象,尤其在JUnit的TestCase和Java数组排序中体现的巧妙之处。
模板方法模式&spm=1001.2101.3001.5002&articleId=84088188&d=1&t=3&u=995cd3aa151c4a5a970076527d5f70c1)
592

被折叠的 条评论
为什么被折叠?



