9Bridge 桥梁模式 将类的功能层次结构与实现层结构分离 结构型设计模式

Posted naimao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9Bridge 桥梁模式 将类的功能层次结构与实现层结构分离 结构型设计模式相关的知识,希望对你有一定的参考价值。

1

使--...使>(12...)2N(N

使西

Bridge

2

技术图片

Printer

package cn.design.structured.bridge;

/**
* @author lin
* @version 1.0
* @date 2020-07-21 14:34
* @Description TODO
*/
public interface Printer {
   void open();

   void print();

   void close();


}

PrinterImpl

package cn.design.structured.bridge;

/**
* @author lin
* @version 1.0
* @date 2020-07-21 14:35
* @Description TODO
*/
public class PrinterImpl implements Printer {
   String string;
   int width;

   public PrinterImpl(String string) {
       this.string = string;
       this.width = string.length();
  }

   @Override
   public void open() {
       printLine();
  }

   @Override
   public void print() {
       System.out.println("|" + string + "|");
  }

   @Override
   public void close() {
       printLine();
  }

   private void printLine() {
       System.out.print("+");
       for (int i = 0; i < width; i++) {
           System.out.print("-");
      }
       System.out.println("+");
  }

}

Display

package cn.design.structured.bridge;

/**
* @author lin
* @version 1.0
* @date 2020-07-21 14:39
* @Description TODO
*/
public class Display {
   Printer printer;

   public Display(Printer printer) {
       this.printer = printer;
  }
   public void display(){
       printer.open();
       printer.print();
       printer.close();
  }

}

CountDisplay

package cn.design.structured.bridge;

/**
* @author lin
* @version 1.0
* @date 2020-07-21 14:40
* @Description TODO
*/
public class CountDisplay extends Display {
   int count;

   public CountDisplay(Printer printer, int count) {
       super(printer);
       this.count = count;
  }

   public void multiDisplay() {
       printer.open();
       for (int i = 0; i < count; i++) {
           printer.print();
      }
       printer.close();
  }

}

BridgeMain

package cn.design.structured.bridge;

/**
* @author lin
* @version 1.0
* @date 2020-07-21 14:42
* @Description TODO
*/
public class BridgeMain {
  public static void main(String[] args) {
      Display d1 = new Display(new PrinterImpl("Hello World"));
      d1.display();
      CountDisplay c1 = new CountDisplay(new PrinterImpl("Hello FaGeJiang !"), 3);
      c1.display();
      c1.multiDisplay();
  }
}

:

+-----------+
|Hello World|
+-----------+
+-----------------+
|Hello FaGeJiang !|
+-----------------+
+-----------------+
|Hello FaGeJiang !|
|Hello FaGeJiang !|
|Hello FaGeJiang !|
+-----------------+

3

技术图片

Abstraction

使ImplementorImplementorDisplay

RefinedAbstraction

AbstractionCountDisplay

Implementor

AbstractionAPIDisplayImpl

ConcreteImplementor

ImplementorAPIStringDisplayImpl

Abstractionimpl

4

"(Abstraction)([Implementation]]使"

[][]使/使

 


技术图片                

 

圈~  转载 需备注 来源以及链接

 

 注公众号  发哥讲 

 

以上是关于9Bridge 桥梁模式 将类的功能层次结构与实现层结构分离 结构型设计模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式Bridge桥梁设计模式

Bridge模式(设计模式)

Bridge模式(设计模式)

桥接模式-Bridge(Java实现)

漫谈设计模式:桥接(Bridge)模式 —— 将类功能结构两层次分离

桥接设计模式(Bridge)