比如,汽车模型需要有 start() enginBoom() alarm() stop() run(); 对于每个汽车来说,能够发动,停止,喇叭响,引擎轰鸣,是共有的. 所以都提到父类的run()方法里去,不同的汽车型号可能有不同的发动,响声等行为就交给各自的子类实现 这就是最简单的模板方法
钩子函数 现在一旦run之后,他就一直响声(alarm),怎么办呢? 我们可以再父类中定义一个isAlarm(),由子类决定到底响不响
这样可以实现外界条件改变,影响模板方法的执行.
比如,汽车模型需要有 start() enginBoom() alarm() stop() run(); 对于每个汽车来说,能够发动,停止,喇叭响,引擎轰鸣,是共有的. 所以都提到父类的run()方法里去,不同的汽车型号可能有不同的发动,响声等行为就交给各自的子类实现 这就是最简单的模板方法
钩子函数 现在一旦run之后,他就一直响声(alarm),怎么办呢? 我们可以再父类中定义一个isAlarm(),由子类决定到底响不响
这样可以实现外界条件改变,影响模板方法的执行.
转载于:https://my.oschina.net/u/1777377/blog/521338