码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-07-21 21:40:23      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:rop   cte   aic   iba   设计   http   oca   公众   模式   

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]]使"

[][]使/使

 


技术图片                

 

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

 

 注公众号  发哥讲 

 

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

标签:rop   cte   aic   iba   设计   http   oca   公众   模式   

原文地址:https://www.cnblogs.com/naimao/p/13355208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!