java设计模式之桥梁

来源:互联网 发布:微服务架构 java 编辑:程序博客网 时间:2024/05/17 07:59

1,需求

某公交车站有线路a到达a地点,线路b到达b地点,现在有旅客c去b地点,d取a地点,需要使用a,b两个线路

2,分析

  公交车站可能并不单单是两个线路,可以抽取出来一个接口,每条线路都实现该接口,具有到底目的地的功能  ,旅客也可以抽取一个公共的接口,每个旅客为具体的实现。

3,代码

//车站public interface Station {    /**     * 到达目的地     */    void getTo();}//线路apublic class StationLineA implements Station {    @Override    public void getTo() {        System.out.println("a线路去到a地点");    }}//线路bpublic class StationLineB implements Station {    @Override    public void getTo() {        System.out.println("b线路去到b地点");    }}//旅客public abstract class Guest {    private Station station;    public Guest(Station station) {        this.station = station;    }    public Station getStation() {        return station;    }    public void setStation(Station station) {        this.station = station;    }    abstract void formPerson(Guest guest);}/** * 旅客a */public class GuestA extends Guest{    public GuestA(Station station) {        super(station);    }    void formPerson(Guest guest) {        System.out.println("a顾客");    }}// 旅客bpublic class GuestB extends Guest {    public GuestB(Station station) {        super(station);    }    @Override    void formPerson(Guest guest) {        System.out.println("");    }}// 客户端public class Client {    public static void main(String[] args) {        Station a = new StationLineA();        Station b = new StationLineB();        Guest guest = new GuestA(a);        guest.formPerson(guest);        guest.getStation().getTo();        guest.setStation(b);        guest.formPerson(guest);        guest.getStation().getTo();    }}

4,总结

    桥接模式与适配器模式极其相似,他们的区别在于,他们的应用场景是不一样的,    我们使用适配的时候一般是现有的两个功能需要进行调用,    而桥接模式是我们为了分离抽象与实现而设计的。

5,参考文献

#### 大话设计模式