2023/10/14 每日总结
今天完成了设计模式实验九
实验9:桥接模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解桥接模式的动机,掌握该模式的结构;
2、能够利用桥接模式解决实际问题。
[实验任务一]:两个维度的桥接模式
用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。
类图
package org.test09; public class AsphaltRoad extends Road{ public void drive() { System.out.println("在沥青路上"); this.getVehicle().bedrive(); } } package org.test09; public class Bus implements Vehicle{ public void bedrive(){ System.out.println("公交车在行使"); } } package org.test09; public class Car implements Vehicle{ public void bedrive(){ System.out.println("小汽车在行使"); } } package org.test09; public class CementRoad extends Road{ @Override public void drive() { System.out.println("在混凝土路上"); this.getVehicle().bedrive(); } } package org.test09; import java.util.Scanner; public class Client { public static void main(String[] args) { Vehicle vehicle = null; CementRoad cementRoad=null; System.out.println("请你输入要走的车和路 1.car走水泥路2.car走沥青路3.bus走水泥路4.bus走沥青路"); Scanner scanner = new Scanner(System.in); String next = scanner.next(); if(next.equals("1")){ vehicle = new Car(); CementRoad cementRoad1=new CementRoad(); cementRoad1.setVehicle(vehicle); cementRoad1.drive(); } else if (next.equals("2")) { vehicle = new Car(); AsphaltRoad asphaltRoad=new AsphaltRoad(); asphaltRoad.setVehicle(vehicle); asphaltRoad.drive(); } else if (next.equals("3")) { vehicle = new Bus(); CementRoad cementRoad1=new CementRoad(); cementRoad1.setVehicle(vehicle); cementRoad1.drive(); } else if (next.equals("4")) { vehicle = new Bus(); AsphaltRoad asphaltRoad=new AsphaltRoad(); asphaltRoad.setVehicle(vehicle); asphaltRoad.drive(); }else { System.out.println("不存在"); } } } package org.test09; public abstract class Road { private Vehicle vehicle; public Vehicle getVehicle() { return vehicle; } public void setVehicle(Vehicle vehicle) { this.vehicle = vehicle; } public abstract void drive(); } package org.test09; public interface Vehicle { void bedrive(); }