1700459029
1700459030
H1型号的悍马是否需要喇叭声响?0-不需要1-需要
1700459031
1700459032
0
1700459033
1700459034
悍马H1发动……
1700459035
1700459036
悍马H1引擎声音是这样在……
1700459037
1700459038
悍马H1停车……
1700459039
1700459040
––-H2型号悍马––—
1700459041
1700459042
悍马H2发动……
1700459043
1700459044
悍马H2引擎声音是这样在……
1700459045
1700459046
悍马H2停车……
1700459047
1700459048
输入“1”后的运行结果如下所示:
1700459049
1700459050
––-H1型号悍马––—
1700459051
1700459052
H1型号的悍马是否需要喇叭声响?0-不需要1-需要
1700459053
1700459054
1
1700459055
1700459056
悍马H1发动……
1700459057
1700459058
悍马H1引擎声音是这样在……
1700459059
1700459060
悍马H1鸣笛……
1700459061
1700459062
悍马H1停车……
1700459063
1700459064
––-H2型号悍马––—
1700459065
1700459066
悍马H2发动……
1700459067
1700459068
悍马H2引擎声音是这样在……
1700459069
1700459070
悍马H2停车……
1700459071
1700459072
看到没,H1型号的悍马是由客户自己控制是否要响喇叭,也就是说外界条件改变,影响到模板方法的执行。在我们的抽象类中isAlarm的返回值就是影响了模板方法的执行结果,该方法就叫做钩子方法(Hook Method)。有了钩子方法模板方法模式才算完美,大家可以想想,由子类的一个方法返回值决定公共部分的执行结果,是不是很有吸引力呀!
1700459073
1700459074
模板方法模式就是在模板方法中按照一定的规则和顺序调用基本方法,具体到前面那个例子,就是run()方法按照规定的顺序(先调用start(),然后再调用engineBoom(),再调用alarm(),最后调用stop())调用本类的其他方法,并且由isAlarm()方法的返回值确定run()中的执行顺序变更。
1700459075
1700459076
1700459077
1700459078
[
上一页 ]
[ :1.700459029e+09 ]
[
下一页 ]