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()
浙公网安备 33010602011771号