设计模式第10篇:桥接模式

一.桥接模式要解决的问题

 桥接模式的作用将接口与实现分离。

二.桥接设计模式用例(Java)

 假设有一个接口继承层次图如下:

 

将其改为桥接模式类图如下:

 

其中Shape和Color接口使用组合关系,附Java代码如下:

interface Color {

    void applyColor();
}
abstract class Shape {
    //Composition - implementor
    protected Color color;
    
    //constructor with implementor as input argument
    public Shape(Color c){
        this.color=c;
    }
    
    abstract public void applyColor();
}
class Triangle extends Shape{

    public Triangle(Color c) {
        super(c);
    }

    @Override
    public void applyColor() {
        System.out.print("Triangle filled with color ");
        color.applyColor();
    } 

}
class Pentagon extends Shape{

    public Pentagon(Color c) {
        super(c);
    }

    @Override
    public void applyColor() {
        System.out.print("Pentagon filled with color ");
        color.applyColor();
    } 

}

class RedColor implements Color{

    public void applyColor(){
        System.out.println("red.");
    }
}
class GreenColor implements Color{

    public void applyColor(){
        System.out.println("green.");
    }
}
public class BridgePatternTest {

	public static void main(String[] args) {
		Shape tri = new Triangle(new RedColor());
		tri.applyColor();
		
		Shape pent = new Pentagon(new GreenColor());
		pent.applyColor();
	}

}
 

三.桥接设计模式使用场景

  当抽象接口和实现类之间有独立的继承(或实现)层次并且要求对客户端隐藏具体实现细节时优先考虑桥接设计模式。

原文地址:https://www.cnblogs.com/quxiangxiangtiange/p/10250001.html