本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 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.注意编程规范。
标签:11.09,桥接,void,Road,实验,transport,new,public,Transport From: https://www.cnblogs.com/kongxiangzeng/p/18658692