首页 > 其他分享 >11.6

11.6

时间:2024-11-13 23:10:24浏览次数:1  
标签:java 11.6 vehicle void Vehicle public Road

实验9:桥接模式

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

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

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

 

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

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

实验要求:

 

 

1、Vehicle.java

package org.example.shiyanjiu;

public interface Vehicle {
    public void drive();
}

 

2、Bus.java

package org.example.shiyanjiu;

public class Bus implements Vehicle{
    @Override
    public void drive(){
        System.out.println("公交车行驶在");
    }
}

 

3、Car.java

package org.example.shiyanjiu;

public class Car implements Vehicle{
    @Override
    public void drive(){
        System.out.println("小轿车行驶在");
    }
}

 

4、Road.java

package org.example.shiyanjiu;

public abstract  class Road {
    protected Vehicle vehicle;
    public Road(Vehicle vehicle){
        this.vehicle=vehicle;
    }
    public abstract void driveOnRoad();
}

 

5、CementRoad.java

package org.example.shiyanjiu;

public class CementRoad extends Road{
    public CementRoad(Vehicle vehicle){
        super(vehicle);
    }
    @Override
    public void driveOnRoad(){
        super.vehicle.drive();
        System.out.println("水泥路");
    }
}

 

6、AsphaltRoad.java

package org.example.shiyanjiu;

public class AsphaltRoad extends Road{
    public AsphaltRoad(Vehicle vehicle){
        super(vehicle);
    }
    @Override
    public void driveOnRoad(){
        super.vehicle.drive();
        System.out.println("沥青路");
    }
}

 

7、Client.java

package org.example.shiyanjiu;

public class Client {
    public static void main(String[] args) {
        Road road=new AsphaltRoad(new Car());
        road.driveOnRoad();
        System.out.println("*****************************");
        Road road1=new CementRoad(new Bus());
        road1.driveOnRoad();
    }
}

 

 

 

标签:java,11.6,vehicle,void,Vehicle,public,Road
From: https://www.cnblogs.com/zzqq1314/p/18545034

相关文章

  • 11.6
    通过Java程序实现对数据库的增删改查操作。复习了JDBC的基本用法,学习了如何通过驱动管理器获取数据库连接。编写了一个简单的Java程序,连接到本地的MySQL数据库,并执行了一个插入操作。importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;pub......
  • 11.6虎牙客户端一面
    1.自我介绍2.共享屏幕看代码​ 类内不能用auto推导成员变量类型​ 类内的成员函数调用应该用作用域3.struct和class区别相同点两者都拥有成员函数、公有和私有部分任何class能完成的工作,struct同样能完成不同点如果不指定,struct默认公有,class默认私有class默认privat......
  • 2024.11.6 鲜花
    アイデン貞貞メルトダウンアリ!?ナシ!?ナシ!?アリ!?ついてるついてないあれどっち?どっち?Trance,trance,trance蟻!?梨!?nAシ!?ァ理!?自我字が崩壊!インドア警備隊紫外線さよなら(バイバイalright!一級在宅allday!)やる気の“や”の字どっかにいっちゃったんだナイナイ心技体......
  • 2024.11.6随笔
    前言半期考试第一天?停课!前一天晚上提前做好了这几天的计划,本来以为晚上要回班自习,结果不用,于是计划就奇妙的往前平移了!CSP后我也反思了自己近期的学习情况,无论是whk还是竞赛。只能说有目标但是缺乏决心和长远的目光,且自己的日常习惯做的还不够好,有的东西没有坚持好。然后就......
  • 2024.11.6训练记录
    今天主要是做的单个题。下次打模拟赛就是放假了。怕会有段时间没打手感下降/ll。csp-J2024Ddp。f[i][j]表示,第i轮结束后,最终颜色是j的结束位置。f[i][j]=-1:状态不能达到。f[i][j]=0:可以在多个人处结束。(即有大于等于2个序列中的j颜色可以被转到)f[i][j]=l:只有在第l......
  • 11.6学习
    StringBuilder//创建对象StringBuildersb=newStringBuilder();括号里可以直接输入东西StringBuildersb=newStringBuilder("666");//添加元素sb.append();括号中填入添加的元素//反转元素sb.reverse();//变为字符串类型Stringstr=sb.toString();链式编程相同类型可以一直......
  • 11.6随笔
    这里是11.6随笔。题目留档:以二叉链表作为二叉树的存储结构,编写程序实现:交换二叉树每个结点的左子树和右子树。以先序遍历构建一棵二叉树,输出中序遍历结果,交换每个节点的左右子树后,输出中序遍历结果。代码:#includeincludestructTreeNode{charval;TreeNode*left;TreeN......
  • 11.6 模拟赛
    A.大副令\(m\)的最高一位\(1\)在\(k\)上。构造\(\lfloorn/2\rfloor\)个\(2^k\),\(n-\lfloorn/2\rfloor\)个\(2^k-1\),即可达到答案上界\((2^{k+1}-1)\times\lfloorn/2\rfloor\times(n-\lfloorn/2\rfloor)\)。B.机械师首先小甜水糖水不等式。多人同时破......
  • 11.6K+ Star!Plate:一个基于AI的富文本编辑器
    Plate简介Plate[1]是一个由AI驱动的富文本编辑器,为用户提供一个强大且易于使用的编辑体验。它支持多种功能,包括但不限于代码高亮、自动保存、协作编辑等,并且可以通过插件系统进行扩展,以满足不同用户的需求。项目特点主要特点AI驱动:Plate利用人工智能技术,提供智能......
  • 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.6版已发布
    关于RainbowChatRainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题(可自行下载体验:专业版下载安装)。* RainbowChat可能是市面上提供im即时通讯聊天源码的,唯一一款同时支持T......