zoukankan      html  css  js  c++  java
  • 桥接模式

        桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。
      抽象与实现分离并不是说让抽象类与其派生类分离。实现值得是抽象类和它的派生类用来实现自己的对象。实现系统可能有多角度分类,每一种分类都有可能变化,那么久吧这种多角度分离出来让他们独立变化,减少他们之间的耦合。

    1 //Implementor类
    2 public abstract class Implementor {
    3     public abstract void operation();
    4 }
     1 //ConcreteImplementorA派生类
     2 public class ConcreteImplementorA extends Implementor {
     3 
     4     @Override
     5     public void operation() {
     6         // TODO Auto-generated method stub
     7         System.out.println("具体实现A的方法执行");
     8     }
     9 
    10 }
     1 //ConcreteImplementorB派生类
     2 public class ConcreteImplementorB extends Implementor {
     3 
     4     @Override
     5     public void operation() {
     6         // TODO Auto-generated method stub
     7         System.out.println("具体实现B的方法执行");
     8     }
     9 
    10 }
     1 //Abstraction类
     2 public class Abstraction {
     3     //聚合
     4     protected Implementor implementor;
     5 
     6     public void setImplementor(Implementor implementor) {
     7         this.implementor = implementor;
     8     }
     9     
    10     public void operation(){
    11         implementor.operation();//使用Implementor中的方法
    12     }
    13     
    14 }
    1 //RefinedAbstraction类
    2 public class RefinedAbstraction extends Abstraction {
    3     
    4     @Override
    5     public void operation() {
    6         implementor.operation();
    7     }
    8 }

    客户端测试类:

     1 public class TestClient {
     2     public static void main(String[] args) {
     3         Abstraction ab = new RefinedAbstraction();
     4         ab.setImplementor(new ConcreteImplementorA());
     5         ab.operation();//具体实现A的方法执行
     6         
     7         ab.setImplementor(new ConcreteImplementorB());
     8         ab.operation();//具体实现B的方法执行
     9     }
    10 }

    UML图:

  • 相关阅读:
    js 跳转链接的几种方式
    js 指定分隔符连接数组元素join()
    Ajax async属性
    非负数正则表达式
    firefox因 HTTP 严格传输安全(HSTS)机制无法打开网页
    查看linux系统某宏的定义(另类)
    ctags高级用法
    ctags简明用法
    关于数组和指针的一道例题的解读
    让gcc和gdb支持intel格式的汇编
  • 原文地址:https://www.cnblogs.com/lixianyuan-org/p/9535985.html
Copyright © 2011-2022 走看看