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图:

  • 相关阅读:
    python常用模块: random模块, time模块, sys模块, os模块, 序列化模块
    (python)getattr等用法
    (Pytorch)涉及的常见操作
    对PatchGAN的感知域(receptive_field)理解
    心得
    dilated conv、deconv、fractional-strided conv
    (PatchGANs)Pecomputed Real-time Texture Synthesis With Markovian Generative Adversarial Networks
    (Pixel2PixelGANs)Image-to-Image translation with conditional adversarial networks
    CGANs
    Tensorflow--Debug
  • 原文地址:https://www.cnblogs.com/lixianyuan-org/p/9535985.html
Copyright © 2011-2022 走看看