package com.DesignPattern.Structural.Bridge;
//具体实现化角色
public class ConcreteImplementor implements Implementor {
// 方法的实现化实现
@Override
public void operationImp() {
// 业务处理逻辑代码
System.out.println("ConcreteImplementor.operationImp()");
}
}
Client.java
package com.DesignPattern.Structural.Bridge;
public class Client {
public static void main(String[] args) {
// 定义一个实现化角色
Implementor imp = new ConcreteImplementor();
// 定义一个抽象化角色
Abstraction abs = new RefinedAbstraction(imp);
// 执行
abs.operation();
}
}
桥梁模式的实例
AbstractShape.java
package com.DesignPattern.Structural.Bridge;
//图形
public abstract class AbstractShape {
Color color;
public AbstractShape(Color color) {
this.color = color;
}
public abstract void draw();
}
Color.java
package com.DesignPattern.Structural.Bridge;
//颜色
public interface Color {
String getColor();
}
Cirle.java
package com.DesignPattern.Structural.Bridge;
//圆形
public class Circle extends AbstractShape {
public Circle(Color color) {
super(color);
}
@Override
public void draw() {
System.out.println("use "+color.getColor()+" draw Circle...");
}
}
Square.java
package com.DesignPattern.Structural.Bridge;
//正方形
public class Square extends AbstractShape{
public Square(Color color) {
super(color);
}
@Override
public void draw() {
System.out.println("use "+color.getColor()+ " draw Square");
}
}
Red.java
package com.DesignPattern.Structural.Bridge;
public class Red implements Color {
@Override
public String getColor() {
return "Red Color";
}
}
Green.java
package com.DesignPattern.Structural.Bridge;
public class Green implements Color {
@Override
public String getColor() {
return "Green Color";
}
}
Test.java
package com.DesignPattern.Structural.Bridge;
public class Test {
public static void main(String[] args){
Color color=new Green();
AbstractShape shape=new Square(color);
shape.draw();
}
}
桥梁模式 Bridge Pattern 桥接模式Decouple an abstraction from its implementation so that the two can vary independently.将抽象和实现解耦,使得两者可以独立地变化。抽象化角色(Abstraction):该角色抽象化的给出定义,并保存一个对实现化对象的引用。package com.DesignPatte