//20210120
写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现桥接模式
//车辆抽象类
public abstract class Car {
protected Road road;
protected String name;
//设置手机软件
public void setRoad(Road road){
this.road = road;
}
//运行
public abstract void run();
public abstract String getName();
}
//吉普车实现类
public class Jeep extends Car {
public Jeep(){
this.name = "吉普车";
}
public String getName() {
return name;
}
@Override
public void run() {
road.run();
}
}
//公交车实现类
public class Bus extends Car{
public Bus(){
this.name = "公交车";
}
public String getName() {
return name;
}
@Override
public void run() {
road.run();
}
}
//皮卡实现类
public class PickUpTruck extends Car {
public PickUpTruck(){
this.name = "皮卡";
}
public String getName() {
return name;
}
@Override
public void run() {
road.run();
}
}
//道路抽象类
public abstract class Road {
public abstract void run();
}
//沙路实现类
public class SandRoad extends Road {
@Override
public void run() {
System.out.println("在沙子路上跑");
}
}
//石头路实现类
public class StoneRoad extends Road {
@Override
public void run() {
System.out.println("在石头路上跑");
}
}
//公路实现类
public class HighWayRoad extends Road{
@Override
public void run() {
System.out.println("在公路上跑");
}
}
//测试主类
public class Main {
public static void main(String[] args) {
Car jeep;
jeep = new Jeep();
System.out.println(jeep.getName());
jeep.setRoad(new StoneRoad());
System.out.print(jeep.getName()+": ");
jeep.run();
jeep.setRoad(new SandRoad());
System.out.print(jeep.getName()+": ");
jeep.run();
jeep.setRoad(new HighWayRoad());
System.out.print(jeep.getName()+": ");
jeep.run();
System.out.println("=====================");
Car bus;
bus = new Bus();
System.out.println(bus.getName());
bus.setRoad(new HighWayRoad());
System.out.print(bus.getName()+": ");
bus.run();
System.out.println("=====================");
Car pickUpTruck;
pickUpTruck = new PickUpTruck();
System.out.println(pickUpTruck.getName());
pickUpTruck.setRoad(new SandRoad());
System.out.print(pickUpTruck.getName()+": ");
pickUpTruck.run();
pickUpTruck.setRoad(new HighWayRoad());
System.out.print(pickUpTruck.getName()+": ");
pickUpTruck.run();
}
}
以上
希望对大家有所帮助
原文:https://www.cnblogs.com/lavender-pansy/p/14305449.html