结构型模式:桥接模式

桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。

      桥接模式将继承关系转化成关联关系(一个维度持有另一个维度的引用它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。

实现系统可能有多个角度分类每一种角度都可能变化,

那么把这种多角度分类给分离出来让他们独立变化,减少他们之间耦合。

      桥接模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用关联关系(组合或者聚合关系)而不是继承关系,从而使两者可以相对独立地变化,这就是桥接模式的用意。

      模式场景我们就采用哪个画图的。其UML结构图如下

package bridge;

/**
 * 品牌
 */
public interface Brand {
    void sale();
}

package bridge;

public class AppleBrand implements Brand {

    @Override
    public void sale() {
        System.out.print("苹果品牌");
    }
}
package bridge;

public class ASUSBrand implements Brand {
    @Override
    public void sale() {
        System.out.print("华硕品牌");
    }
}
package bridge;

public class DellBrand implements Brand {
    @Override
    public void sale() {
        System.out.print("戴尔品牌");
    }
}
package bridge;

public class Computer {
    private Brand brand;

    public Computer(Brand brand) {
        this.brand = brand;
    }

    public void sale() {
        brand.sale();
    }

}
package bridge;

public class BookComputer extends Computer {

    public BookComputer(Brand brand) {
        super(brand);
    }

    @Override
    public void sale() {
        super.sale();
        System.out.println("笔记本在销售");
    }
}
package bridge;

public class DeskComputer extends Computer {

    public DeskComputer(Brand brand) {
        super(brand);
    }

    @Override
    public void sale() {
        super.sale();
        System.out.println("台式机在销售");

    }
}
package bridge;

public class Test {
    public static void main(String[] args) {
        Computer AsusDeskComputer = new DeskComputer(new ASUSBrand());
        AsusDeskComputer.sale();

        Computer DellBookComputer = new BookComputer(new DellBrand());
        DellBookComputer.sale();

    }
}
 
结果:
华硕品牌台式机在销售

戴尔品牌笔记本在销售


桥接模式总结:

桥接模式使用场景: 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值