欢迎来到杳无音讯的个人站|

杳无音讯

园龄:2年11个月粉丝:9关注:9

实验9:桥接模式

实验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();  
}  
}  
 
复制代码

 

 

本文作者:杳无音讯

本文链接:https://www.cnblogs.com/130-gzh/p/17856317.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   杳无音讯  阅读(26)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起