24.12.07

[实验任务一]:两个维度的桥接模式
用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。
实验要求:

  1. 画出对应的类图;
    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.注意编程规范。

posted @ 2024-12-07 19:28  起名字真难_qmz  阅读(11)  评论(0)    收藏  举报