模板方法模式

      模板方法模式主要用于对算法或者行为逻辑进行封装,即如果多个类中存在某些相似的算法逻辑或者行为逻辑,可以将这些相似的逻辑提取到模板方法类实现,然后让相应的子类根据需要实现某些自定义的逻辑。

      举个例子来说,所有汽车,不管是宝马还是夏利,它们的驾驶流程基本是固定的。实际上,除了少数细节不同,大部分的流程是一样的,基本上是如下所示的流程说明。

     (1)点火启动汽车

     (2)踩杀车,挂前进档位(手都挡和自动挡这一步存在差异)

     (3)放下手刹

     (4)踩油门启动车辆

     我们可以声明一个模板方法类,将确定的行为以模板的形式定义,而将不同的行为留给相应的子类实现。

    

public abstract Vehicle {
      public final void drive() {
            startTheEngine ();
            putIntoGear();
            looseHandBrake();
            setOnTheGasAndGo();
      }

      protected abstract void putIntoGear();
     
      private void setOnTheGasAndGo(){
           //...
      }
      
      private void putIntoGear(){
          //...
      }
}

 

  driver()方法就是我们的模板方法,它声明为final,也就是说,方法内的逻辑是不可变更的。putIntoGear()由具体的子类实现。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值