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()); }