• 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());    
      }
  • 相关阅读:
    Tomcatd断点调试Debug
    idea怎么部署Servlet
    ECMAScript基本语法——①与HTML的结合方式
    JavaScript简介
    程序员找工作,应该怎么应对面试官?
    你所未知的3种 Node.js 代码优化方式
    对 APM 用户的一次真实调查分析(上)
    Datadog Agent是啥?它消耗什么资源?
    Python 全栈开发 -- 开发环境篇
    成为运维界的「福尔摩斯」,你还需要3个帮手!
  • 原文地址:https://www.cnblogs.com/yangyunnb/p/6479205.html
Copyright © 2020-2023  润新知