设计模式探索——桥接模式

来源:互联网 发布:诸葛亮马前课时辰算法 编辑:程序博客网 时间:2024/06/09 06:26

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
UML图
这里写图片描述

1.创建桥接实现接口

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

2.创建实现了DrawAPI接口的桥接实现类

public class RedCircle implements DrawAPI{    @Override    public void drawCircle(int radius,int x,int y){        System.out.println("Drwaing Circle Color :red,radius:"+radius+",X:"+x+",y:"+y);    }}public class GreenCircle implements DrawAPI{    @Override    public void drawCircle(int radius,int x,int y){        System.out.println("Drawing Circle Color        :green,radius:"+",x:"+x+",y:"+y);    }}

3.使用DrawAPI接口创建抽象类Shape

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

4.创建实现了Shape接口的实体类

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.使用

public class BridgePatternDemo{    public static void main(String[] args){        Shape redCircle = new Circle(1,1,100,new RedCircle());        Shape greenCircle = new Circle(1,1,100,new GreenCircle());        redCircle.draw();        greenCircle.draw();    }}
0 0
原创粉丝点击