java设计模式之桥梁

1,需求

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

2,分析

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

3,代码

//车站
public interface Station {
    /**
     * 到达目的地
     */
    void getTo();
}
//线路a
public class StationLineA implements Station {
    @Override
    public void getTo() {
        System.out.println("a线路去到a地点");
    }
}
//线路b
public 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顾客");
    }
}
// 旅客b
public 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,参考文献

#### 大话设计模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值