1. 类图:

2.源代码
// 车接口
interface Vehicle {
void drive();
}
// 小汽车类
class Car implements Vehicle {
private String name;
public Car(String name) {
this.name = name;
}
@Override
public void drive() {
System.out.println(name + " is driving on the road.");
}
}
// 公交车类
class Bus implements Vehicle {
private String name;
public Bus(String name) {
this.name = name;
}
@Override
public void drive() {
System.out.println(name + " is driving on the road.");
}
}
// 路接口
interface Road {
void driveOn(Vehicle vehicle);
}
// 水泥路类
class CementRoad implements Road {
@Override
public void driveOn(Vehicle vehicle) {
System.out.println("Driving on cement road with " + vehicle.getClass().getSimpleName());
vehicle.drive();
}
}
// 沥青路类
class AsphaltRoad implements Road {
@Override
public void driveOn(Vehicle vehicle) {
System.out.println("Driving on asphalt road with " + vehicle.getClass().getSimpleName());
vehicle.drive();
}
}
// 测试类
public class BridgePatternTest {
public static void main(String[] args) {
Vehicle car = new Car("Car");
Vehicle bus = new Bus("Bus");
Road cementRoad = new CementRoad();
Road asphaltRoad = new AsphaltRoad();
cementRoad.driveOn(car);
cementRoad.driveOn(bus);
asphaltRoad.driveOn(car);
asphaltRoad.driveOn(bus);
}
}
posted @
2024-11-04 09:20
艾鑫4646
阅读(
5)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示