设计模式Bridge桥梁设计模式

Posted li仲玄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式Bridge桥梁设计模式相关的知识,希望对你有一定的参考价值。

一.什么是Bridge模式

负责两两个层次结构的东西连接起来,分别是类的功能层次结构和类的实现层次结构.

 

二.解析

1.类的功能层次结构是通过子类继承父类添加新的功能函数.

2.类的实现层次结构是通过父类定义抽象类,具体实现交给子类;父类负责定义对接的接口,子类负责实现接口.

3.父类Display负责实现基本函数,而函数里面其实是调用抽象方法类的函数,如:

public Display(DisplayImpl impl){

  this.impl = impl;

}

public void open(){

  impl.rawOpen()(

}

并且父类Display还负责类似的定义模板方法,说的类似,毕竟方法还是自己的,但是方法的里面却套着别人的方法,不过也可以包含自己的,如

public final void display(){

  open();

  print();

  close();

}

哈哈,想想说模板还是不怎么准确的,只能说某种情况下.

 

 

4.子类CountDisplay负责增加功能,继承后写功能就是,比较简单就不啰嗦.

 

5.实现层次的父类DisplayImpl,跟子类StringDisplayImpl的功能是一个抽象方法类,一个实现方法类.

而之前的Display类的方法就是包含StringDisplayImpl的实现方法

 

 

三.代码解析

Main程序

public class Main(){

  public static void main (String[] args){

    Display d1 = new Display(new StringDisplayImpl("Hello,China."));

    Display d2 = new CountDisplay(new StringDisplayImpl("Hello,World."));

    CountDisplay d3 = new CountDisplay(new StringDisplayImpl("Hello,Universe."));

    d1.display();

    d2.display();

    d3.display();

    d3.multiDisplay(); //CountDisplay子类的新功能函数

  }

}

 

四.UML图

1.资料是这么写的

CountDisplay--->Display<--->DsplayImpl<---StringDisplayImpl

 

2.我觉得是这样

CountDisplay--->Display<--->StringDisplayImpl--->DsplayImpl

  

  

以上是关于设计模式Bridge桥梁设计模式的主要内容,如果未能解决你的问题,请参考以下文章

"围观"设计模式(15)--结构型之桥梁模式(Bridge Pattern)

桥接设计模式(Bridge)

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

桥接模式---Bridge

桥接模式(Bridge)

桥接模式-Bridge(Java实现)