您的位置:首页 > 其它

设计模式之桥接模式

2016-03-22 19:28 429 查看
        桥接模式是将抽象部分与实现部分分离,使它们都可以独立的变化。

                                                                    ——《设计模式》GOF

        就是不关心两个对象是如何生成的,只关心二者是行为是可以随意组合。

        比如,男人穿牛仔裤,女人穿裙子,在桥接模式里面,就可以随意的让男人穿裙子,女人穿牛仔裤。

衣服接口:

public abstract class Clothes {
public abstract void wearClothes();
}裙子:
public class Skirt extends Clothes {

@Override
public void wearClothes() {
System.out.println("裙子");
}
}牛仔裤:
public class Jean extends Clothes {

@Override
public void wearClothes() {
System.out.print("牛仔裤");
}
}people抽象类:
public abstract class People {
public Clothes clothes;
public void setClothes(Clothes clothes) {
this.clothes = clothes;
}
public abstract void wearClothes();
}男人:
public class Man extends People {

@Override
public void wearClothes() {
System.out.print("男人穿");
this.clothes.wearClothes();
}

}女人:
public class Women extends People {

@Override
public void wearClothes() {
System.out.print("女人穿");
this.clothes.wearClothes();
}

}男人女人开始穿衣服:
public class Main {

public static void main(String[] args) {
// 天气热,让男人穿裙子
People man = new Man();
man.setClothes(new Skirt());
man.wearClothes();
// 天气冷,让女人穿牛仔裤
People women = new Women();
women.setClothes(new Jean());
women.wearClothes();
}

}        桥接模式跟抽象工厂模式正好相反,桥接模式里面的对象行为可以随意组合,而抽象工厂模式的产品角色和行为角色则一起组成一个流水线,正好避免了张冠李戴。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息