zoukankan      html  css  js  c++  java
  • 设计模式(9)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

      

      

  • 相关阅读:
    安装nginx
    查看Linux内核
    Python学习总结11:获取当前运行类名和函数名
    Python学习总结10:获取shell输出结果
    Python学习总结9:目录操作方法汇总
    Python学习总结8:文件模式及操作方法汇总
    Python学习总结7:随机字符串和随机数
    Python学习总结6:字符串格式化操作及方法总结
    Python学习总结5:数据类型及转换
    Python学习总结4:字符串常量与操作汇总
  • 原文地址:https://www.cnblogs.com/zhongxuan/p/7465577.html
Copyright © 2011-2022 走看看