您的位置:首页 > 其它

设计模式-桥接模式

2014-10-08 19:25 169 查看
桥接模式: 多维

如车行驶在路上。车分各种品牌、各种型号各种排气

道路分街道、告诉、山地等

驾驶员分男女

为了减少类的数量。(如果按照继承实现会照成大量冗余的类,类的数量会相当之大)

package com.cn.duduyu.bridgePattern.car;

public abstract class CarBrand {

public abstract void run();
}


package com.cn.duduyu.bridgePattern.car;

public abstract class DriverAbstract {

public abstract void run();
}


package com.cn.duduyu.bridgePattern.car;

public abstract class EngineAbstract {

public abstract void run();
}


package com.cn.duduyu.bridgePattern.car;

public abstract class RoadAbstract {

public abstract void run();
}


package com.cn.duduyu.bridgePattern.car;

public abstract class CarAbstract {

protected RoadAbstract rode;

protected DriverAbstract dirver;

protected EngineAbstract engine;

protected CarBrand brand;

public void setBrand(CarBrand brand) {
this.brand = brand;
}

public void setRode(RoadAbstract rode) {
this.rode = rode;
}

public void setDirver(DriverAbstract dirver) {
this.dirver = dirver;
}

public void setEngine(EngineAbstract engine) {
this.engine = engine;
}

public abstract void run();
}


一个美女开着一辆(driver)排油量为2500CC的(Engine)Benz_(Brand)敞篷跑车(carAbstract)行驶在高速公路上(Road)
将各个属性抽象成类,具体的子类继承,再组合成不同的组合,在这里implementor有:RoadAbstract、DriverAbstract、EngineAbstract、CarBrand;

而Abstraction为CarAbstract。所以当驾驶员类型增加青蛙和恐龙,汽车排气量增加3000cc,汽车品牌增加BMW,道路增加山路、沙漠,仅仅只需继承对应的抽象类,形成新类即可。

图摘自大话设计模式231页
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: