Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder)模式 Java原型模式 Java适配器模式 Java桥接模式 Java过滤器模式(条件模式) Java组合模式 Java装饰模式 Java门面模式(或外观模式) Java享元模式(Flyweight Pattern) Java责任链模式 Java命令模式 Java迭代器模式 Java中介者模式(Mediator Pattern) Java解释器模式 Java备忘录模式 Java观察者模式 Java状态模式 Java空对象模式 Java策略模式 Java模板模式 Java访问者模式 Java MVC模式 Java业务代理模式 Java组合实体模式 Java数据访问对象模式 Java前端控制器模式 Java拦截过滤器模式 Java服务定位器模式 Java传输对象模式 Java设计模式之中介者模式(Mediator Pattern)简介 Java设计模式之命令模式(Command模式)介绍 Java设计模式之访问模式(Visitor者模式)介绍 Java设计模式之观察者模式(Observer模式)介绍 Java设计模式之状态模式(State模式)介绍 Java设计模式之策略模式(Strategy模式)介绍 Java设计模式之解释器模式(Interpreter模式)介绍 Java设计模式之中介模式(Mediator模式)介绍 Java设计模式之备忘录模式(Memento模式)介绍 Java设计模式之责任链模式(Chain of Responsibility模式)介绍 Java设计模式之模板模式(Template模式)介绍 Java设计模式之迭代模式(Iterator模式)介绍 Java设计模式之外观模式(Facade模式)介绍 Java设计模式之代理模式(Proxy模式)介绍 Java设计模式之适配器模式(Adapter模式)介绍 Java设计模式之组合模式(Composite模式)介绍 Java设计模式之装饰模式(Decorator模式)介绍 Java设计模式之桥模式(Bridge模式)介绍 Java设计模式之共享模式/享元模式(Flyweight模式)介绍 Java设计模式之原型模式(Prototype模式)介绍 Java设计模式之建造者模式(Builder模式)介绍 Java设计模式之单态模式(Singleton模式)介绍 Java设计模式之工厂模式(Factory模式)介绍

桥接模式将定义与其实现分离。 它是一种结构模式。
桥接(Bridge)模式涉及充当桥接的接口。桥接使得具体类与接口实现者类无关。
这两种类型的类可以改变但不会影响对方。

当需要将抽象与其实现去耦合时使用桥接解耦(分离),使得两者可以独立地变化。这种类型的设计模式属于结构模式,因为此模式通过在它们之间提供桥接结构来将实现类和抽象类解耦(分离)。

这种模式涉及一个接口,作为一个桥梁,使得具体类的功能独立于接口实现类。两种类型的类可以在结构上改变而不彼此影响。

通过以下示例展示了桥接(Bridge)模式的使用,实现使用相同的抽象类方法但不同的网桥实现器类来绘制不同颜色的圆形。

实现实例

假设有一个DrawAPI接口作为一个桥梁实现者,具体类RedCircleGreenCircle实现这个DrawAPI接口。 Shape是一个抽象类,将使用DrawAPI的对象。 BridgePatternDemo这是一个演示类,将使用Shape类来绘制不同彩色的圆形。实现结果图如下 -

第1步

创建桥实现者接口。

DrawAPI.java

public interface DrawAPI {     public void drawCircle(int radius, int x, int y);  }  

第2步

创建实现DrawAPI接口的具体桥接实现者类。

RedCircle.java

public class RedCircle implements DrawAPI {     @Override     public void drawCircle(int radius, int x, int y) {        System.out.println("Drawing Circle[ color: red, radius: " + radius + ", x: " + x + ", " + y + "]");     }  }  

GreenCircle.java

public class GreenCircle implements DrawAPI {     @Override     public void drawCircle(int radius, int x, int y) {        System.out.println("Drawing Circle[ color: green, radius: " + radius + ", x: " + x + ", " + y + "]");     }  }  

第3步

使用DrawAPI接口创建一个抽象类Shape
Shape.java

public abstract class Shape {     protected DrawAPI drawAPI;       protected Shape(DrawAPI drawAPI){        this.drawAPI = drawAPI;     }     public abstract void draw();      }  

第4步

创建实现Shape接口的具体类。

Circle.java

public class Circle extends Shape {     private int x, y, radius;       public Circle(int x, int y, int radius, DrawAPI drawAPI) {        super(drawAPI);        this.x = x;          this.y = y;          this.radius = radius;     }       public void draw() {        drawAPI.drawCircle(radius,x,y);     }  }  

第5步

使用ShapeDrawAPI类来绘制不同的彩色圆形。

BridgePatternDemo.java

public class BridgePatternDemo {     public static void main(String[] args) {        Shape redCircle = new Circle(100,100, 10, new RedCircle());        Shape greenCircle = new Circle(100,100, 10, new GreenCircle());          redCircle.draw();        greenCircle.draw();     }  }  

第6步

验证输出结果,执行上面的代码得到结果如下 -

Drawing Circle[ color: red, radius: 10, x: 100, 100]  Drawing Circle[  color: green, radius: 10, x: 100, 100]  

本文属作者原创,转载请注明出处:易百教程 » Java桥接模式

206阅读 | 0评论
你的回应
联系我们