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());    
      }
  • 相关阅读:
    java中Collection 与Collections的区别
    Bridge桥接模式(设计模式11)
    动态代理模式(设计模式10)
    代理模式(静态代理)(设计模式9)
    适配器模式(工厂模式8)
    原型模式(工厂模式7)
    建造者模式(工厂模式6)
    抽象工厂模式(工厂模式5)
    工厂模式(工厂模式4)
    简单工厂模式(工厂模式3)
  • 原文地址:https://www.cnblogs.com/yangyunnb/p/6479205.html
Copyright © 2011-2022 走看看