桥接模式

实验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.注意编程规范。

 

posted @ 2024-12-30 22:26  chrisrmas、  阅读(9)  评论(0)    收藏  举报