• 桥接模式——Java实现


    问题描述:

    用桥接模式实现在路上开车这个问题,其中,车可以是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();
        }
    }

    运行结果:

     

     

     

  • 相关阅读:
    Android--adb
    Android 爬坑之路
    Android倒计时实现
    Android Studio常用设置
    Java Web开发——MySQL数据库的安装与配置
    DOS命令(系统错误5,拒绝访问)的解决方法
    Java EE开发环境——MyEclipse2017破解 和 Tomcat服务器配置
    设计模式-工厂模式
    设计模式-简单工厂模式
    设计模式简介
  • 原文地址:https://www.cnblogs.com/znjy/p/14138176.html
Copyright © 2020-2023  润新知