橋接模式
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();
}
橋接模式的核心
- 外層服務面向接口編程
- 真正使用外層服務時,根據注入的接口實現類,決定採用哪個實現方法
橋接模式與策略模式
- 橋接模式中,外層服務不需要知道接口實現類的存在與區別。僅在使用外層服務時,由調用方注入接口實現類
- 策略模式中,需要注入接口的所有實現類,根據策略選擇相應的實現類