桥模式
将抽象化与实现化脱耦,使得二者可以独立变化。该模式的目标是通过把高层的抽象和底层的实现分开,分别构建自己的类层次结构,并通过实现部分的接口将两部分进行桥接,从而达到高层抽象和底层实现可以独立的方便扩展的目的。其核心是分离,和委托。
?
在以下的情况下应当使用桥梁模式:
如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系。
设计要求实现角色的任何改变不应当影响客户端,或者说实现化角色的改变对客户端是完全透明的。
一个构件有多于一个的抽象化角色和实现化角色,系统需要他们之间进行动态耦合。
?
?
?
?
?
?
?
public class Client { public static void main(String[] args) { Draw winDraw = new WinDrawImpl(); Draw unixDraw = new UnixDrawImpl(); //Win绘制正方形 System.out.println("Win绘制正方形"); Shape winSquare = new Square(winDraw); winSquare.drawShape(); //Unix绘制正方形 System.out.println("Unix绘制正方形"); Shape unixSquare = new Square(unixDraw); unixSquare.drawShape(); //Win绘制三角形 System.out.println("Win绘制三角形"); Shape winTriangle = new Triangle(winDraw); winTriangle.drawShape(); //Unix绘制三角形 System.out.println("Unix绘制三角形"); Shape unixTriangle = new Triangle(unixDraw); unixTriangle.drawShape(); }}?