打字猴:1.70045915e+09
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 ]  [ 下一页 ]