设计模式--桥接模式


类图

 

源码

package bridge;

public interface Vehicle {
    public void drive();
}

Car.java
package bridge;

public class Car implements Vehicle
{
    @Override
    public void drive()
    {
        System.out.print("小轿车");
    }
}

Bus.java
package bridge;

public class Bus implements Vehicle{
    @Override
    public void drive()
    {
        System.out.print("公共汽车");
    }
}

Road.java
package bridge;

public abstract class Road
{
    protected Vehicle vehicle;

    public Road(Vehicle vehicle)
    {
        this.vehicle = vehicle;
    }

    public abstract void driveOnRoad();
}

ShuiRoad.java
package bridge;

public class ShuiRoad extends Road
{
    public ShuiRoad(Vehicle vehicle)
    {
        super(vehicle);
    }

    @Override
    public void driveOnRoad()
    {
        super.vehicle.drive();
        System.out.println("行驶在水泥路");
    }
}

LiRoad.java
package bridge;

public class LiRoad extends Road
{
    public LiRoad(Vehicle vehicle)
    {
        super(vehicle);
    }

    @Override
    public void driveOnRoad()
    {
        super.vehicle.drive();
        System.out.println("行驶在沥青路");
    }
}
Tester.java
package bridge;

public class Tester {
    public static void main(String[] args) {
        Road road = new ShuiRoad(new Car());
        road.driveOnRoad();
        Road road1 = new ShuiRoad(new Bus());
        road1.driveOnRoad();
    }
}

测试截图