首页 > 编程语言 >桥接模式——Java实现

桥接模式——Java实现

时间:2022-10-09 17:14:19浏览次数:37  
标签:Java java 桥接 Vehicle 模式 vehicle new public Road

问题描述:

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

类图:

 

 

Java源代码:

//Road.java
package shiyan9;

public abstract class Road {
    protected Vehicle vehicle;
    public void setVehicle(Vehicle ve) {
        this.vehicle=ve;
    }
    public abstract void drive();
}
//Shuini.java
package shiyan9;

public class Shuini extends Road{
    public void drive() {
        vehicle.run();
        System.out.println("行驶在水泥路");
    }
}
//Liqing.java
package shiyan9;

public class liqing extends Road{
    public void drive() {
        vehicle.run();
        System.out.println("行驶在沥青路");
    }
}
//Vehicle.java
package shiyan9;

public interface Vehicle {
    public void run();
}
//Bus.java
package shiyan9;

public class Bus implements Vehicle{
    @Override
    public void run() {
        System.out.print("Bus");    
    }
}
//Car.java
package shiyan9;

public class Car implements Vehicle{
    @Override
    public void run() {
        System.out.print("Car");    
    }
}
//Main.java
package shiyan9;

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();
    }
}

运行结果:

 

 

 

 

 

 

标签:Java,java,桥接,Vehicle,模式,vehicle,new,public,Road
From: https://www.cnblogs.com/15132949hao/p/16772825.html

相关文章

  • ipad mini2 进入dfu模式
    开机状态,用数据线连接电脑,可以打开i4助手方便后面查看是否进入dfu模式。按住关机键2秒,然后同时按住关机键和Home键8-10秒;最后,只要按住Home键15秒。看到黑屏状态后基本就......
  • 日期类java.util.Date
    1packagecom.msb.test02;23importjava.util.Date;45/**6*开发人:liu7*日期:15:41:058*描述:IntelliJIDEA9*版本:1.010*/11pub......
  • java连接接kerberos认证下的hive
    1.pop.xml配置hive与hadoop的配置版本要匹配,一般hive2.X版本要选择hadoop2.x版本,否则会不兼容<dependency><groupId>org.apache.hadoop</groupId>......
  • 18_Java中的内部类
    Java的内部类一、内部类概述1、内部类:其实就是在一个类中定义一个类(类似于C语言中的结构体的嵌套)2、定义格式:publicclass类名{修饰符class类名{......
  • Java加解密-SM4国密算法
    SM4国密算法简介SM4依赖包SM4类SM4_Context类SecuritySM4类=================================== SM4国密算法简介与DES和AES算法相似,国密SM4算法是一种分组加密......
  • Java 多线程(三)静态代理模式
    静态代理模式:1.真实角色和代理角色实现同一个接口2.代理角色要代理真实角色3.代理角色可以做真实角色做不了的事4.真实角色专注做自己的事publicclassStaticProxy......
  • Java开发页面接口过程中,应该注意的点
    列表接口1、查询条件是否需要去除前后空格;2、列表的时间格式是否正确;有的显示2022-07-28这种格式,有的显示:2022-07-2719:00:003、在前端传递时间的参数时,若定义的是Da......
  • Java语言中多态的机制
    1.方法解析Class文件的编译过程中,不包含传统编译中的连接步骤,一切方法的调用在Class文件中存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性......
  • 【Java复健指南03】递归思想
    【递归】递归重要规则1.执行一个方法时,就创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响,比如n变量如果方法中使用的是引用类型变量(比......
  • java序列化
    一、序列化与反序列化序列化:指堆内存中的java对象数据,通过某种方式把对存储到磁盘文件中,或者传递给其他网络节点(网络传输)。这个过程称为序列化,通常是指将数据结构或对象转......