24.12.07
[实验任务一]:两个维度的桥接模式
用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。
实验要求:
- 画出对应的类图;
![image]()
2.提交源代码;
package org.test.ruanjiansheji.shipeiqi;
// 路接口
interface Road {
String getRoadType();
}
// 水泥路
class CementRoad implements Road {
@Override
public String getRoadType() {
return "水泥路";
}
}
// 沥青路
class AsphaltRoad implements Road {
@Override
public String getRoadType() {
return "沥青路";
}
}
// 车辆抽象类
abstract class Vehicle {
protected Road road;
public Vehicle(Road road) {
this.road = road;
}
abstract void drive();
}
// 小汽车
class Car extends Vehicle {
public Car(Road road) {
super(road);
}
@Override
public void drive() {
System.out.println("小汽车在" + road.getRoadType() + "上行驶");
}
}
// 公交车
class Bus extends Vehicle {
public Bus(Road road) {
super(road);
}
@Override
public void drive() {
System.out.println("公交车在" + road.getRoadType() + "上行驶");
}
}
public class BridgePatternTest {
public static void main(String[] args) {
// 创建不同的道路
Road cementRoad = new CementRoad();
Road asphaltRoad = new AsphaltRoad();
// 创建不同的车辆在不同的道路上行驶
Vehicle carOnCement = new Car(cementRoad);
carOnCement.drive();
Vehicle carOnAsphalt = new Car(asphaltRoad);
carOnAsphalt.drive();
Vehicle busOnCement = new Bus(cementRoad);
busOnCement.drive();
Vehicle busOnAsphalt = new Bus(asphaltRoad);
busOnAsphalt.drive();
}
}
3.注意编程规范。


浙公网安备 33010602011771号