桥接模式

1. 类图:

 

 

2.源代码

 // 车接口

interface Vehicle {

    void drive();

}

 

// 小汽车类

class Car implements Vehicle {

    private String name;

 

    public Car(String name) {

        this.name = name;

    }

 

    @Override

    public void drive() {

        System.out.println(name + " is driving on the road.");

    }

}

 

// 公交车类

class Bus implements Vehicle {

    private String name;

 

    public Bus(String name) {

        this.name = name;

    }

 

    @Override

    public void drive() {

        System.out.println(name + " is driving on the road.");

    }

}

 

// 路接口

interface Road {

    void driveOn(Vehicle vehicle);

}

 

// 水泥路类

class CementRoad implements Road {

    @Override

    public void driveOn(Vehicle vehicle) {

        System.out.println("Driving on cement road with " + vehicle.getClass().getSimpleName());

        vehicle.drive();

    }

}

 

// 沥青路类

class AsphaltRoad implements Road {

    @Override

    public void driveOn(Vehicle vehicle) {

        System.out.println("Driving on asphalt road with " + vehicle.getClass().getSimpleName());

        vehicle.drive();

    }

}

 

// 测试类

public class BridgePatternTest {

    public static void main(String[] args) {

        Vehicle car = new Car("Car");

        Vehicle bus = new Bus("Bus");

 

        Road cementRoad = new CementRoad();

        Road asphaltRoad = new AsphaltRoad();

 

        cementRoad.driveOn(car);

        cementRoad.driveOn(bus);

 

        asphaltRoad.driveOn(car);

        asphaltRoad.driveOn(bus);

    }

}

posted @   艾鑫4646  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示