「デザインモードシリーズ」---ブリッジモード
ブリッジモード、
抽象部分とその実現部分を分離して、それらを独立に変化させることができます。 実現システムは多角度分類が可能で、それぞれの分類が変化する可能性があります。このような多角度分離によって彼らが独立して変化し、彼らの間の結合を減少させます。
抽象部分とその実現部分を分離して、それらを独立に変化させることができます。 実現システムは多角度分類が可能で、それぞれの分類が変化する可能性があります。このような多角度分離によって彼らが独立して変化し、彼らの間の結合を減少させます。
/**
* @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();
}
}