java 设计模式--桥接

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

传统方法
这里写图片描述

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(“公交车”);  
    }  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值