桥接模式

桥接模式

demo

这里写图片描述

public class BridgeDemo {
    public static void main(String[] args) {
        RenderService renderService = new RenderService(new DrawApi() {
            @Override
            public void draw() {
                System.out.println("draw red circle");
            }
        });
        renderService.draw();

        RenderService renderService1 = new RenderService(() ->
                System.out.println("draw blue triangle")
        );
        renderService1.draw();
    }
}

class RenderService {
    private DrawApi drawApi;

    RenderService(DrawApi drawApi) {
        this.drawApi = drawApi;
    }

    public void draw() {
        drawApi.draw();
    }
}

interface DrawApi {
    void draw();
}

桥接模式的核心

  • 外层服务面向接口编程
  • 真正使用外层服务时,根据注入的接口实现类,决定采用哪个实现方法

桥接模式与策略模式

  • 桥接模式中,外层服务不需要知道接口实现类的存在与区别。仅在使用外层服务时,由调用方注入接口实现类
  • 策略模式中,需要注入接口的所有实现类,根据策略选择相应的实现类
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章