1700459150
if(actionName.equalsIgnoreCase(“start”)){
1700459151
1700459152
this.start();//开启汽车
1700459153
1700459154
}else if(actionName.equalsIgnoreCase(“stop”)){
1700459155
1700459156
this.stop();//停止汽车
1700459157
1700459158
}else if(actionName.equalsIgnoreCase(“alarm”)){
1700459159
1700459160
this.alarm();//喇叭开始叫了
1700459161
1700459162
}else if(actionName.equalsIgnoreCase(“engine boom”)){//
1700459163
1700459164
如果是engine boom关键字
1700459165
1700459166
this.engineBoom();//引擎开始轰鸣
1700459167
1700459168
}
1700459169
1700459170
}
1700459171
1700459172
}
1700459173
1700459174
//把传递过来的值传递到类内
1700459175
1700459176
final public void setSequence(ArrayList<String>sequence){
1700459177
1700459178
this.sequence=sequence;
1700459179
1700459180
}
1700459181
1700459182
}
1700459183
1700459184
CarModel的设计原理是这样的,setSequence方法是允许客户自己设置一个顺序,是要先启动响一下喇叭再跑起来,还是要先响一下喇叭再启动。对于一个具体的模型永远都固定的,但是对N多个模型就是动态的了。在子类中实现父类的基本方法,run()方法读取sequence,然后遍历sequence中的字符串,哪个字符串在先,就先执行哪个方法。
1700459185
1700459186
两个实现类分别实现父类的基本方法,奔驰模型如代码清单11-2所示。
1700459187
1700459188
代码清单11-2 奔驰模型代码
1700459189
1700459190
public class BenzModel extends CarModel{
1700459191
1700459192
protected void alarm(){
1700459193
1700459194
System.out.println(“奔驰车的喇叭声音是这个样子的……”);
1700459195
1700459196
}
1700459197
1700459198
protected void engineBoom(){
1700459199
[
上一页 ]
[ :1.70045915e+09 ]
[
下一页 ]