java 设计模式--桥接

来源:互联网 发布:搭建yum仓库 编辑:程序博客网 时间:2024/05/22 01:47

《一》 桥接
将抽象部分与实现部分分离,使它们都可以独立的变化。
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化。

传统方法
这里写图片描述

class Road {
void run() {
System.out.println(“路”);
}
}

//市区街道
class Street extends Road {
void run() {
System.out.println(“市区街道”);
}
}

//高速公路
class SpeedWay extends Road {
void run() {
System.out.println(“高速公路”);
}
}
//小汽车在市区街道行驶
class CarOnStreet extends Street {
void run() {
System.out.println(“小汽车在市区街道行驶”);
}
}
//小汽车在高速公路行驶
class CarOnSpeedWay extends SpeedWay {
void run() {
System.out.println(“小汽车在高速公路行驶”);
}
}
//公交车在市区街道行驶
class BusOnStreet extends Street {
void run() {
System.out.println(“公交车在市区街道行驶”);
}
}
//公交车在高速公路行驶
class BusOnSpeedWay extends SpeedWay {
void run() {
System.out.println(“公交车在高速公路行驶”);
}
}
//测试
public static void main(String[] args) {

//小汽车在高速公路行驶  CarOnSpeedWay carOnSpeedWay = new CarOnSpeedWay();  carOnSpeedWay.run();  //公交车在市区街道行驶  BusOnStreet busOnStreet = new BusOnStreet();  busOnStreet.run();  

}

应用设计模式

这里写图片描述
这里写图片描述

abstract class AbstractRoad{  
    AbstractCar aCar;  
    void run(){};  
}  
abstract class AbstractCar{  
    void run(){};  
}  
  
class Street extends AbstractRoad{  
    @Override  
    void run() {  
        // TODO Auto-generated method stub  
        super.run();  
        aCar.run();  
        System.out.println(“在市区街道行驶”);  
    }  
}  
class SpeedWay extends AbstractRoad{  
    @Override  
    void run() {  
        // TODO Auto-generated method stub  
        super.run();  
        aCar.run();  
        System.out.println(“在高速公路行驶”);  
    }  
}  
class Car extends AbstractCar{  
    @Override  
    void run() {  
        // TODO Auto-generated method stub  
        super.run();  
        System.out.print(“小汽车”);  
    }  
}  
class Bus extends AbstractCar{  
    @Override  
    void run() {  
        // TODO Auto-generated method stub  
        super.run();  
       
 System.out.print(“公交车”);  
    }  
}  

0 0
原创粉丝点击