首页 > 其他分享 >实验9:桥接模式

实验9:桥接模式

时间:2023-11-25 23:25:27浏览次数:23  
标签:Road 桥接 void 模式 实验 transport new public Transport

实验9:桥接模式

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

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

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

 

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

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

实验要求:

1. 对应的类图如下;

 

2. 源代码如下;

 

package a9;  
public abstract class Road {  
protected Transport transport;  
public void setTransport(Transport tr) {  
this.transport=tr;  
}  
public abstract void drive();  
}  
package a9;  
public class Liqing extends Road{  
public void drive() {  
transport.run();  
System.out.println("行驶在沥青路");  
}  
} 
package a9;  
public class Shuini extends Road{  
public void drive() {  
transport.run();  
System.out.println("行驶在水泥路");  
}  
}  
package a9;  
public interface Transport {  
public void run();  
}  
package a9;  
public class Bus implements Transport{  
@Override  
public void run() {  
System.out.print("Bus");  
}  
} 
package a9;  
public class Car implements Transport{  
@Override  
public void run() {  
System.out.print("Car");  
}  
}  
package a9;  
import java.util.*;  
public class Client {  
public static void main(String[] args) {  
Transport transport = 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) {  
transport=(Transport)new Car();  
road=(Road)new Shuini();  
}else if(i==2) {  
transport=(Transport)new Car();  
road=(Road)new Liqing();  
}else if(i==3){  
transport=(Transport)new Bus();  
road=(Road)new Shuini();  
}else if(i==4) {  
transport=(Transport)new Bus();  
road=(Road)new Liqing();  
}else {  
System.out.println("输入无效!");  
}  
road.setTransport(transport);  
road.drive();  
}  
}  
 

 

 

标签:Road,桥接,void,模式,实验,transport,new,public,Transport
From: https://www.cnblogs.com/130-gzh/p/17856317.html

相关文章

  • Centos7 系统 /etc/fstab配置文件中文件系统类型错误导致进入紧急模式如何解决
    在格式化分区是我选择的ext4文件格式对分区sdc2进行了格式化,但是在写入配置文件是选择的文件格式是xfs,这导致了我的虚拟机进入系统时直接进入了紧急模式输入root密码进行维护,可以发现出现了命令窗,由于知道错误原因,所以可以直接从根源入手打开配置文件vim/etc/fstab我对设备......
  • 实验6:原型模式
    实验6:原型模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解原型模式的动机,掌握该模式的结构;2、能够利用原型模式解决实际问题。 [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比......
  • 实验7:单例模式
    实验7:单例模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;  ......
  • 实验8:适配器模式
    实验8:适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 对应的类图如下;  ......
  • 编译原理实验
       掌握了LR法进行语法分析的原理,掌握了语法分析器的设计与调试......
  • oracle数据库实验
       进行oracle数据库的学习,掌握数据的插入(INSERT)、修改(UPDATE)和删除(DELETE)操作。 掌握不同类型的数据查询(SELECT)操作。......
  • 设计模式相关复习短篇
    1--设计模式基本概念设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码,让代码更容易被他人理解、提高代码的可靠性。2--设计模式基本要素模式名称,问题,解决方案,效果模式别名,模式的分类,模式的适用性,模式角色,模式实例,模......
  • springBoot + 工厂模式 实现 快递鸟、顺丰和快递100的物流查询
    前言:在SpringBoot中实现快递鸟、顺丰和快递100的物流查询功能通常需要与它们提供的API进行交互。当然使用他们的API我们是需要申请和注册,从而去拿到key来进行调用。所以为注册的必须先进行注册,以下是他们的官网地址,可以快捷到达。快递鸟官网:快递鸟-快递查询接口_免费快递......
  • 设计模式之原型模式
    原型模式指的是,从对象copy一个对象到另一个对象浅拷贝:类对象copy的时候使用的是地址,基础类型会进行数据拷贝深拷贝:基础数据类型以及类对象都会进行数据copyspring创建对象的时候,可以选择单例,也可以选择原型模式原始的copy方式:需要拷贝的类@Getter@Setter@NoArgsConstru......
  • 创建型设计模式05-抽象工厂模式
    1、抽象工厂模式介绍抽象工厂模式(AbstractFactoryPattern)是一种创建型设计模式,围绕一个超级工厂创建其他工厂,也称作为工厂的工厂(大工厂里的小工厂)。在抽象工厂模式中,接口负责创建一组相关对象的工厂,而不需要显式指定它们的类。这种设计模式能够将客户端与具体的实现分离,从而使得......