首页 > 其他分享 >11.5

11.5

时间:2024-11-05 19:31:36浏览次数:3  
标签:11.5 void Vehicle vehicle new public Road

软件设计                  石家庄铁道大学信息学院

 

实验9:桥接模式

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

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

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

 

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

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

实验要求:

1. 画出对应的类图;

 

2. 提交源代码;

//Road.javapackage test9;public abstract class Road {

    protected Vehicle vehicle;

    public void setVehicle(Vehicle ve) {

        this.vehicle=ve;

    }

    public abstract void drive();

}//Shuini.javapackage test9;public class Shuini extends Road{

    public void drive() {

        vehicle.run();

        System.out.println("行驶在水泥路");

    }

}//Liqing.javapackage test9;public class Liqing extends Road{

    public void drive() {

        vehicle.run();

        System.out.println("行驶在沥青路");

    }

}//Vehicle.javapackage test9;public interface Vehicle {

    public void run();

}//Bus.javapackage test9;public class Bus implements Vehicle{

    @Override

    public void run() {

        System.out.print("Bus");    

    }

}//Car.javapackage test9;public class Car implements Vehicle{

    @Override

    public void run() {

        System.out.print("Car");    

    }

}//Main.javapackage test9;import java.util.Scanner;public class Main {

    public static void main(String[] args) {

        Vehicle vehicle = null;

        Road road = null;

        System.out.println("请选择:1、Car/水泥路  2、Car/沥青路  3、Bus/水泥路  4、Bus/沥青路");

        Scanner input=new Scanner(System.in);

        int i=input.nextInt();

        if(i==1) {

            vehicle=(Vehicle)new Car();

            road=(Road)new Shuini();

        }else if(i==2) {

            vehicle=(Vehicle)new Car();

            road=(Road)new Liqing();

        }else if(i==3){

            vehicle=(Vehicle)new Bus();

            road=(Road)new Shuini();

        }else if(i==4) {

            vehicle=(Vehicle)new Bus();

            road=(Road)new Liqing();

        }else {

            System.out.println("输入无效!");

        }

        road.setVehicle(vehicle);

        road.drive();

    }

}

 

3.注意编程规范。

 

标签:11.5,void,Vehicle,vehicle,new,public,Road
From: https://www.cnblogs.com/galileo9527/p/18528663

相关文章

  • 11.5日总结
    实验9:桥接模式[实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。 1.类图   1. 源代码1.Car.javapackage test9; publicclassCarimplementsVehicle{    @Override    publicvoidd......
  • 11.5
    (填空题)依据复用的对象,软件复用分为()和()。我的答案:20分(1)产品复用(2)过程复用正确答案:(1)产品复用(2)过程复用(填空题)软件复用的优点有()、()、()、()。我的答案:20分(1)提高生产率(2)减少维护代价(3)提高互操作性(4)支持快速原型正确答案:(1)提高生产率(2)减......
  • 11.5 人工智能学习内容
    人工智能(ArtificialIntelligence)引文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。(一)学科范畴人工智能是一门边沿学科,属于自然科学、社会科学、技术科学三向交叉学科。(二)涉及学科与领域哲学和认知科学,数学,神经生......
  • 第十一章 【后端】商品分类管理微服务(11.5)——增强响应
    11.5增强响应在前后端分离的开发模式下,我们一般会统一后端的响应格式,比如自定义Response结构,但每个开发者可能会封装各自的Response结构,造成不一致,因此我们需要将响应格式统一起来,定义一个统一的标准响应格式。11.5.1创建响应模块新建yumi-etms-response模块......
  • 【持续更新】驱动人生海外中文专业版Driver Talent Pro8.1.11.54在线版/网卡版最新免
    在全新安装Windows系统后,可能会遇到令人尴尬的情况——没有网络连接,也没有驱动程序。如何才能快速获取合适的驱动,尤其是为您的有线或无线网卡?您需要的是能够智能且自动下载及安装网络驱动的解决方案,而非手动操作。此外,您还希望能够检测并处理过时、缺失或损坏的驱动(不仅限......
  • 11.5 快速排序
    目录11.5 快速排序11.5.1 算法流程11.5.2 算法特性11.5.3 快速排序为什么快11.5.4 基准数优化11.5.5 尾递归优化11.5 快速排序快速排序(quicksort)是一种基于分治策略的排序算法,运行高效,应用广泛。快速排序的核心操作是“哨兵划分”,其目标是:选......
  • [C++] 小游戏 斗破苍穹 2.2.1至2.11.5所有版本(下) zty出品
    2.10.6#include<stdio.h>#include<iostream>#include<ctime>#include<bits/stdc++.h>#include<time.h>#include<windows.h>//SLEEP函数usingnamespacestd;intboss1=0,boss2=0;structPlayer{//玩家结构体,并初始化playercharname[21......
  • 华为平板(metapad 11.5 2023款)电脑传不了文件
    打电话前做了如下尝试1.版本号8下开开发者模式,去开发者模式开adb调试和usb模式调为MTP2.开启hdb(开启后ADB调试可能会关闭?建议最好再去看一眼)3.下载了华为手机助手(windows版本)接着搞不定打电话(950800)摇人让我做了以下尝试就好了1.换接口+换线(我无法确......