桥接模式
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();
}
桥接模式的核心
外层服务面向接口编程 真正使用外层服务时,根据注入的接口实现类,决定采用哪个实现方法
桥接模式与策略模式
桥接模式中,外层服务不需要知道接口实现类的存在与区别。仅在使用外层服务时,由调用方注入接口实现类 策略模式中,需要注入接口的所有实现类,根据策略选择相应的实现类