2024/11/15
实验9:桥接模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 
1、理解桥接模式的动机,掌握该模式的结构;
2、能够利用桥接模式解决实际问题。
[实验任务一]:两个维度的桥接模式
用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。
实验要求:
1.	画出对应的类图;
 
2.	提交源代码;
package a9;  
public abstract class Road {  
protected Transport transport;  
public void setTransport(Transport tr) {  
this.transport=tr;  
}  
public abstract void drive();  
}  
package a9;  
public class Liqing extends Road{  
public void drive() {  
transport.run();  
System.out.println("行驶在沥青路");  
}  
} 
package a9;  
public class Shuini extends Road{  
public void drive() {  
transport.run();  
System.out.println("行驶在水泥路");  
}  
}  
package a9;  
public interface Transport {  
public void run();  
}  
package a9;  
public class Bus implements Transport{  
@Override  
public void run() {  
System.out.print("Bus");  
}  
} 
package a9;  
public class Car implements Transport{  
@Override  
public void run() {  
System.out.print("Car");  
}  
}  
package a9;  
import java.util.*;  
public class Client {  
public static void main(String[] args) {  
Transport transport = null;  
Road road = null;  
System.out.println("请选择:1、Car/水泥路  2、Car/沥青路  3、Bus/水泥路  4、Bus/沥青路");  
Scanner input=new Scanner(System.in);  
int i=input.nextInt();  
if(i==1) {  
transport=(Transport)new Car();  
road=(Road)new Shuini();  
}else if(i==2) {  
transport=(Transport)new Car();  
road=(Road)new Liqing();  
}else if(i==3){  
transport=(Transport)new Bus();  
road=(Road)new Shuini();  
}else if(i==4) {  
transport=(Transport)new Bus();  
road=(Road)new Liqing();  
}else {  
System.out.println("输入无效!");  
}  
road.setTransport(transport);  
road.drive();  
}  
}
3.注意编程规范。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号