qwb0614

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  187 随笔 :: 0 文章 :: 0 评论 :: 2048 阅读

实验9:桥接模式

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

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

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

 
   

 


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

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

实验要求:

1.画出对应的类图;

 

2.提交源代码;

3.注意编程规范。

复制代码
package ruanjiansheji.shiyan9;

public class Bus implements Vehicle{
    @Override
    public void drive() {
        System.out.print("大巴");
    }
}
package ruanjiansheji.shiyan9;

public class Car implements Vehicle{
    @Override
    public void drive()
    {
        System.out.print("小轿车");
    }
}
package ruanjiansheji.shiyan9;

public class CementRoad extends Road{
    public CementRoad(Vehicle vehicle)
    {
        super(vehicle);
    }

    @Override
    public void driveOnRoad()
    {
        super.vehicle.drive();
        System.out.println("行驶在水泥路");
    }
}
package ruanjiansheji.shiyan9;

public class Main {
    public static void main(String[] args) {
        Road unpavedRoad = new UnpavedRoad(new Bus());
        unpavedRoad.driveOnRoad();
        System.out.println("-------------------");
        Road cementRoad = new CementRoad(new Car());
        cementRoad.driveOnRoad();
    }
}
package ruanjiansheji.shiyan9;

public abstract class Road {
    protected Vehicle vehicle;

    public Road(Vehicle vehicle) {
        this.vehicle = vehicle;
    }

    public abstract void driveOnRoad();
}
package ruanjiansheji.shiyan9;

public class UnpavedRoad extends Road{
    public UnpavedRoad(Vehicle vehicle)
    {
        super(vehicle);
    }

    @Override
    public void driveOnRoad()
    {
        super.vehicle.drive();
        System.out.println("行驶在石子路");
    }
}
package ruanjiansheji.shiyan9;

public interface Vehicle {
    public void drive();
}
复制代码

 

posted on   嘎嘎鸭1  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示