桥接模式,将实现类和接口类拆分开来,不使用继承,接口类(抽象类) 持有一个桥接类的引用,根据传入的桥接实现类引用。这样在改变桥接类的情况下就可以改变抽象类的运行结果。
名词类:
抽象部分:
public abstract class Circle { protected Draw draw; protected Circle(Draw draw){ this.draw = draw; } protected abstract void drawCircle(); }实现类:
public class CircleImpl extends Circle { private int x; private int y; private String desc; public CircleImpl(Draw draw, int x, int y, String desc) { super(draw); this.x = x; this.y = y; this.desc = desc; } @Override protected void drawCircle() { draw.draw(); } }行为类:
接口:
public interface Draw { void draw(); }实现类1:
public class RedDrawImpl implements Draw{ @Override public void draw() { System.out.println("red circle"); } }实现类2:
public class GreenDrawImpl implements Draw{ @Override public void draw() { System.out.println("green circle"); } }桥梁模式本质上就是以组合的方式来替代继承,解耦代码,使得其能灵活的更换实现逻辑。
