[垃圾桶]Java 模板方法模式

本文详细分析了模板方法模式与策略模式的关系,指出当模板方法中只有一个可变部分时,它实际上还原为策略模式。文章通过具体的代码示例展示了如何将模板方法模式重构为策略模式,并讨论了在不同情况下选择使用模板方法模式或策略模式的考量因素。此外,还探讨了模板方法模式与桥接模式的区别,主要在于行为参数化的独立性与串接性。
摘要由CSDN通过智能技术生成

本文移到垃圾桶,参考 3.3 模板方法模式(5.10)


本文综述模板方法模式。

  • GoF在这个模式的介绍中,值得领会的话是:“模板方法非常基本,它们几乎可以在任何一个抽象类中找到。”,“模板方法是一种代码复用的基本技术。它们在类库中尤为重要,它们提取了类库中的公共行为”。忽略这一点,所有关于这个模式的其他文字的注解版的解说,都是鹦鹉学舌。
  • GoF在这个模式的介绍中,提到的IoC、好莱坞法则和钩子,yqj2065认为他们是在找抽。参考什么是好莱坞法则
所以,对于传统的模板方法模式的解说——GoF的注解版的解说,yqj2065嗤之以鼻。

1.模板方法模式与策略模式

如果模板方法中只有一个可变的部分,模板方法模式还原为策略模式。因此模板方法模式可以视为策略模式的简单推论:可变部分由一到多。

package callBack.templateMethod;

/**
 * 求和函数
 * 
 * @author (yqj2065) 
 * @version (0.1)
 */
public abstract class Sum{
    public final double getSum(int a,int b){
        double sum=0;
        for(int i =a;i<=b; i=next(i)){
            sum+=item(i);
        }
        return sum;        
    }

    public abstract int next(int i) ;

    public abstract double item(int x);
}
这个例子中,如果 只有一个可变的部分(不管是抽象方法还是空方法,或者GoF的什么钩子方法),我们将这个例子称为使用了策略模式(例如将
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值