zoukankan      html  css  js  c++  java
  • 7.桥接设计模式

    7.桥接设计模式

    1.概述

    • 场景
    • 车子有很多分类-公交车、小车、大车
    • 路有很多分类---城市道路、乡村道路、高速公路
    • 我们需要通过代码实现车在公路上跑的情形
    • 桥接设计模式
    • 这里有两个维度车辆和路面,桥接设计模式希望把这两个部分的设计进行分离
    • 1.Car有一个基础类,其他类型的车继承这个类并进行扩展
    • 2.Road有一个基础类,其他类型的路继承这个类并进行扩展
    • 3.路面和车辆通过类进行组合。

    2.代码

    • abstract public class AbstractCar {
          abstract public void run();
      }
      
      class Car extends AbstractCar{
          @Override
          public void run(){
              System.out.println("小汽车");
          }
      }
      
      class SpeedWay extends AbstractCar{
          @Override
          public void run(){
              System.out.println("高速公路");
          }
      }  
    • 描述:车辆
    • /**
       * Created by yangyun on 2017/2/28.
       */
      abstract public class AbstractRoad {
          protected AbstractCar abstractCar;
      
          abstract public void run();
      
          public void setAbstractCar(AbstractCar abstractCar) {
              this.abstractCar = abstractCar;
          }
      
          public AbstractCar getAbstractCar() {
              return abstractCar;
          }
      }
      
      class Street extends AbstractRoad{
          @Override
          public void run(){
              getAbstractCar().run();
              System.out.println("在市区街道行驶");
          }
      }
      
      class SpeedStreet extends AbstractRoad{
          @Override
          public void run(){
              getAbstractCar().run();
              System.out.println("在高速公路行驶");
          }
      }  
    • 描述:车辆
    • public static void main(String[] args){
              AbstractRoad abstractRoad=new SpeedStreet();
              abstractRoad.setAbstractCar(new Car());    
      }
  • 相关阅读:
    js/es6判断对象是否为空,并判断对象是否包含某个属性
    Hive中的SQL执行计划--几乎所有的SQL都有
    spark中的scalaAPI之RDDAPI常用操作
    spark-scala开发的第一个程序WordCount
    linux中添加自定义命令
    kafka学习总结
    flume的sink写入hive表
    Flume架构以及应用介绍(转)
    Appache Flume 中文介绍(转)
    hiveSQL常用日期函数
  • 原文地址:https://www.cnblogs.com/yangyunnb/p/6479205.html
Copyright © 2011-2022 走看看