10.11

 

实验9:桥接模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解桥接模式的动机,掌握该模式的结构;

2、能够利用桥接模式解决实际问题

 

[实验任务一]:两个维度的桥接模式

用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。

实验要求:

1. 画出对应的类图;

 

2.提交源代码;

class Road:
    def get_road_type(self):
        raise NotImplementedError("This method should be overridden.")


class CementRoad(Road):
    def get_road_type(self):
        return "水泥路"


class AsphaltRoad(Road):
    def get_road_type(self):
        return "沥青路"


class Vehicle:
    def __init__(self, road):
        self._road = road

    def drive(self):
        raise NotImplementedError("This method should be overridden.")


class Car(Vehicle):
    def drive(self):
        return f"在{self._road.get_road_type()}上开车"


class Bus(Vehicle):
    def drive(self):
        return f"在{self._road.get_road_type()}上开公交车"


    # 实际使用
def main():
    # 创建不同类型的路
    cement_road = CementRoad()
    asphalt_road = AsphaltRoad()

    # 创建车辆
    car_on_cement = Car(cement_road)
    bus_on_asphalt = Bus(asphalt_road)

    # 运行实例
    print(car_on_cement.drive())      # 输出: 在水泥路上开车
    print(bus_on_asphalt.drive())     # 输出: 在沥青路上开公交车


if __name__ == "__main__":
    main()

 

3.注意编程规范。

 

posted @ 2024-11-27 08:17  The-rich  阅读(14)  评论(0)    收藏  举报