Java桥接模式的理解
发布时间:2023-05-06 09:08:49 308
相关标签: # java# java
由1个例子来说明。
要求:1个黑白打印机+1个彩色打印机分别打印1个坐标为(100, 200),半径为40的圆,和1个坐标为(200, 400),半径为80的圆。
将此句话提炼下:2个打印机打印2个圆。
在打印机和圆之间增加一个桥,那么,
1. 打印机直接看到的就是这个桥,桥后面是2个圆,打印机通过桥操作圆;
2. 圆通过桥看到的就是打印机,而非打印机后面的黑白打印机和彩色打印机。
上述2点即是说桥两端的都统一了,一端统一为打印机,一端统一为圆。
因此,
1. 如果将圆那一侧统一为Qiao接口,那么2个圆都应实现该接口的方法。
2. 如果将打印机那一侧统一为Printer抽象类,那么2个打印机都应继承该类。
因此可以这样做:
新增一个桥接口,桥的功能是画图,因此定义draw()方法,代码如下:
Circle.java代码如下:
新增一个Printer抽象类,因为Printer操作的是Qiao接口,所以代码也引用了它,代码如下:
BlackPrinter.java代码如下:
ColorPrinter代码如下:
Main.java代码如下:
Main.java可以看出,打印机操作圆是通过桥进行的,而非直接操作的。黑白打印机通过桥画circle1,彩色打印机通过桥画circle2。
代码执行结果:
画一个圆: 40, x: 100, 200]
画一个圆: 80, x: 200, 400]
文章来源: https://blog.51cto.com/u_15927439/5985710
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报