Head First 设计模式学习笔记(九)模板方法模式

本文深入探讨了模板方法模式的核心概念,包括其特点、优势及应用场景。通过实例分析,展示了如何利用模板方法模式实现代码复用与算法抽象,尤其在JUnit的TestCase和Java数组排序中体现的巧妙之处。

模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法可以使子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。

 

方法模式的特点:把不变的行为搬到超类,去除子类中重复的代码来体现他的优势。

当不变的和可变的行为在方法中混合在一起时,不变的行为就会在子类中重复出现,模板方法模式就是将这些不变的行为搬移到一个超类中,避免重复代码。

 

注:模板方法可以使用钩子来控制是否执行某一段代码。(如以下代码,子类可以选择覆盖 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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值