桥接模式,
将抽象部分与它的实现部分分离,使它们都可以独立地变化。 实现系统可以有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立变化,减少他们之间的耦合。
/** * @author stefanie zhao * @date 2014-8-21 下午03:02:37 */public abstract class Implementor { public abstract void operation();}
/** * @author stefanie zhao * @date 2014-8-21 下午03:03:23 */public class ConcreteImplementorA extends Implementor { /* * (non-Javadoc) * * @see us.echo.pattern.bridge.Implementor#operation() */ @Override public void operation() { System.out.println("A的方法执行"); }}
/** * @author stefanie zhao * @date 2014-8-21 下午03:03:23 */public class ConcreteImplementorB extends Implementor { /* * (non-Javadoc) * * @see us.echo.pattern.bridge.Implementor#operation() */ @Override public void operation() { System.out.println("B的方法执行"); }}
/** * @author stefanie zhao * @date 2014-8-21 下午03:04:21 */public class Abstraction { protected Implementor implementor; public void setImplementor(Implementor im) { this.implementor = im; } public void operation() { implementor.operation(); }}
/** * @author stefanie zhao * @date 2014-8-21 下午03:06:07 */public class RefinedAbstraction extends Abstraction { public void operation() { implementor.operation(); }}
public class Main { /** * @Description: TODO * @param @param args * @return void * @throws */ public static void main(String[] args) { Abstraction ab = new RefinedAbstraction(); ab.setImplementor(new ConcreteImplementorA()); ab.operation(); ab.setImplementor(new ConcreteImplementorB()); ab.operation(); }}