Java实现(07)——桥接模式(Bridge Pattern)

来源:互联网 发布:人工智能的文献综述 编辑:程序博客网 时间:2024/05/16 11:17

桥接模式用于连接两个不相干的抽象实现,这种模式中存在一个当做桥梁的接口,本例展示可以用不同的颜色画一个圆,但是提供相同的抽象接口。


public interface DrawAPI {    public void drawCircle(int radius, int x, int y);}
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 + "]");    }}
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: " + ", " + y + "]");    }}

public abstract class Shape {    protected DrawAPI drawAPI;    protected Shape(DrawAPI drawAPI) {        this.drawAPI = drawAPI;    }    public abstract void draw();}
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;    }    @Override    public void draw() {        drawAPI.drawCircle(radius, x, y);    }}
public class Demo {    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();    }}
输出:

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





0 0
原创粉丝点击