桥梁模式(Bridge)
2017-10-27 本文已影响0人
MrWangLei6666
举例说明:
/**
* 作者:wanglei
* 邮箱:229846388@qq.com
* 桥梁模式(Bridge)
* 接口
*/
public interface Sourceable {
public void method();
}
/**
* 作者:wanglei
* 邮箱:229846388@qq.com
* 桥梁模式(Bridge)
* 实现类
*/
public class SourceSub1 implements Sourceable{
@Override
public void method() {
System.out.println("SourceSub1!");
}
}
/**
* 作者:wanglei
* 邮箱:229846388@qq.com
* 桥梁模式(Bridge)
* 实现类
*/
public class SourceSub2 implements Sourceable{
@Override
public void method() {
System.out.println("SourceSub2!");
}
}
/**
* 作者:wanglei
* 邮箱:229846388@qq.com
* 桥梁模式(Bridge)
* 定义一个桥,持有Sourceable的一个实例:
*/
public abstract class Bridge {
private Sourceable sourceable;
public void method(){
sourceable.method();
}
public Sourceable getSourceable(){
return sourceable;
}
public void setSourceable(Sourceable sourceable){
this.sourceable = sourceable;
}
}
/**
* 作者:wanglei
* 邮箱:229846388@qq.com
* 桥梁模式(Bridge)
*/
public class MyBridge extends Bridge{
@Override
public void method(){
getSourceable().method();
}
}
/**
* 作者:wanglei
* 邮箱:229846388@qq.com
* 桥梁模式(Bridge)
* 定义:
* 1.桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化.
* 2.桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化.
*/
public class SimplePattern {
public static void main(String[] args) {
Bridge bridge = new MyBridge();
Sourceable sub1 = new SourceSub1();
bridge.setSourceable(sub1);
bridge.method();
Sourceable sub2 = new SourceSub2();
bridge.setSourceable(sub2);
bridge.method();
}
}
/**
* 结果:
* SourceSub1!
* SourceSub2!
* 结论:通过对Bridge类的调用,实现了对接口Sourceable的实现类SourceSub1和SourceSub2的用。
*/