实验9:桥接模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解桥接模式的动机,掌握该模式的结构;
2、能够利用桥接模式解决实际问题。
[实验任务一]:两个维度的桥接模式
用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。
实验要求:
1. 画出对应的类图;
2.提交源代码;
// 抽象道路类
abstract class Road {
protected Vehicle vehicle;
// 构造函数用于设置相应的车辆
public Road(Vehicle vehicle) {
this.vehicle = vehicle;
}
abstract void useRoad();
}
// 抽象车辆类
abstract class Vehicle {
abstract void drive();
}
// 水泥路类
class CementRoad extends Road {
public CementRoad(Vehicle vehicle) {
super(vehicle);
}
@Override
void useRoad() {
System.out.print("Using cement road. ");
vehicle.drive();
}
}
// 沥青路类
class AsphaltRoad extends Road {
public AsphaltRoad(Vehicle vehicle) {
super(vehicle);
}
@Override
void useRoad() {
System.out.print("Using asphalt road. ");
vehicle.drive();
}
}
// 小汽车类
class Car extends Vehicle {
@Override
void drive() {
System.out.println("Car is driving.");
}
}
// 公交车类
class Bus extends Vehicle {
@Override
void drive() {
System.out.println("Bus is driving.");
}
}
// 测试类
public class Main {
public static void main(String[] args) {
Vehicle car = new Car();
Vehicle bus = new Bus();
Road cementRoadForCar = new CementRoad(car);
Road asphaltRoadForBus = new AsphaltRoad(bus);
cementRoadForCar.useRoad(); // 输出: Using cement road. Car is driving.
asphaltRoadForBus.useRoad(); // 输出: Using asphalt road. Bus is driving.
}
}
3.注意编程规范。