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,参考文献
#### 大话设计模式
阅读全文
0 0
- java设计模式之桥梁
- java设计模式之桥梁模式
- Java设计模式笔记之桥梁模式
- Java设计模式泛型化之桥梁模式
- java设计模式之桥梁模式
- 设计模式之-桥梁模式
- 设计模式之桥梁模式
- 设计模式之桥梁模式
- 设计模式之桥梁模式
- 设计模式之桥梁模式
- 设计模式之桥梁模式
- java 设计模式-结构模式之桥梁模式
- Java设计模式----桥梁模式
- Java设计模式----桥梁模式
- Java设计模式----桥梁模式
- Java设计模式--桥梁模式
- java设计模式之桥梁模式(10)
- (十三)Java设计模式之桥梁模式
- 类名直接调用与对象引用的区别
- spark 通信机制
- 身份证 闰年验证 超强验证
- bootstrap table使用总结
- Data Structures——Chapter One Exercises(换位置+复数的加减乘除运算)
- java设计模式之桥梁
- ISBN号码
- spring + activiti 实现使用自己的user表和role表来管理流程任务
- Javaweb QQ第三方登录
- MySQL 的学习(三:MySQL存储引擎和数据类型)
- 一探究竟之JavaScript===和==区别2
- OpenGL 入门教程(三) -- 混合
- java 引用类型作为方法参数使用问题
- 防火墙的配置--firewalld与iptables