桥接模式的目标是使对象的抽象部分与实现部分分离,使之可以分别独立变化,以尽量避免产生耦合。
下图以绘制圆形为例:圆形的颜色通过接口类DrawAPI及其2个实现类RedCircle以及GreenCircle实现;圆形的坐标以及半径通过抽象类及其扩展类实现,在实现draw()方法时,直接使用DrawAPI类中的相关对象的drawCircle方法。
DrawAPI接口类:
package bridge;
public interface DrawAPI {
public void drawCircle(int radius, int x, int y);
}
RedCircle实现类:
package bridge;
public class RedCircle implements DrawAPI{
@Override
public void drawCircle(int radius, int x, int y) {
System.out.println("画红色圆,半径"+radius+",坐标:x="+x+",y="+y);
}
}
GreenCircle实现类:
package bridge;
public class GreenCircle implements DrawAPI{
@Override
public void drawCircle(int radius, int x, int y) {
System.out.println("画绿色圆,半径"+radius+",坐标:x="+x+",y="+y);
}
}
Shape抽象类:
package bridge;
public abstract class Shape {
protected DrawAPI drawAPI;
protected Shape(DrawAPI drawAPI) {
this.drawAPI=drawAPI;
}
public abstract void draw();
}
Circle扩展类:
package bridge;
public class Circle extends Shape{
int x, y, radius;
public Circle(DrawAPI drawAPI,int x,int y,int radius) {
super(drawAPI);
this.x=x;
this.y=y;
this.radius=radius;
}
@Override
public void draw() {
drawAPI.drawCircle(radius, x, y);
}
}
主函数调用方式:
package main;
import bridge.*;
public class BridgePattern {
public static void main(String[] args) {
Shape redCircle =new Circle(new RedCircle(),10,10,5);
Shape greenCircle = new Circle(new GreenCircle(),20,20,6);
redCircle.draw();
greenCircle.draw();
}
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
耦合器
+关注
关注
8文章
718浏览量
59629 -
API接口
+关注
关注
1文章
82浏览量
10426
发布评论请先 登录
相关推荐
关于桥接模式遇到的问题
VMware使用桥接模式,已经手动设置ip地址和主机ip同一网段,但是ifconfig显示的ip地址却和vmnet8(NAT)同一网段?怎么解决?
发表于 10-16 15:06
网桥和桥接,网桥和桥接是什么意思
网桥和桥接,网桥和桥接是什么意思
网桥(Bridge)也称桥接器,是连接两个局域网的存储转发设备,用它可以完成具有相同或相似体系
发表于 03-20 16:03
•1.3w次阅读
桥接模式应用场景
1、什么是桥接模式? Decouple an abstraction from its implementation so that the two can vary independently.
无线桥接和mesh组网哪个好?
无线桥接和Mesh组网都是用于扩展无线网络覆盖范围的技术,但它们的工作原理和应用场景有所不同。 无线桥接通常是一对一的连接,相对较容易设置和维护。它的优点在于简单性,适用于需要建立点对点连接的场景
路由器桥接路由器怎样桥接 路由器桥接好还是中继好
路由器桥接和中继是常用的网络扩展方式,用于扩大网络覆盖范围,提供更好的网络连接。这两种方式在不同的场景下有着各自的优势,下面将详细介绍如何桥接路由器,以及
评论