桥接模式

一、什么是桥接模式

        桥接模式,将抽象部分与实现部分分离,使它们都可以独立地变化。

二、UML 图


桥接模式UML实现

三、代码示例

1、 Implementor  实现

public interface Implementor {

        public void operation();

}

2、 Implementor 的实现A

public class ConcreteImplementorA implements Implementor{

        @Override

        public void operation() {

                System.out.println("实现A");

        }

}

3、 Implementor 的实现B

public class ConcreteImplementorB implements Implementor{

        @Override

        public void operation() {

                System.out.println("实现B");

        }

}

4、抽象

public abstract class Abstraction {

        protected Implementor implementor;

        public abstract void operation() ;

        public void setImplementor(Implementor implementor){

                    this.implementor = implementor;

         }

}

5、 Abstraction 的子类 Refrection

public class Refrection extends Abstraction{

        @Override

        public void operation() {

            implementor.operation();

        }

}

5、实现类

public class Main {

        public static void main(String[] args) {

                Abstraction ab = new Refrection();

                ab.setImplementor(new ConcreteImplementorA());

                ab.operation();

                ab.setImplementor(new ConcreteImplementorB());

                ab.operation();

        }

}


四、总结

        桥接模式将抽象和实现相分离的原因是实现有多种可能,那么就将实现分离出来,让其单独变化。实际应用场景比较多,如下图Spring Cache 和 Slf4j 的应用:

                实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立变化,减少它们之间的耦合。

你可能感兴趣的:(桥接模式)