桥接模式简介

  • 桥接是用于把抽象化与实现化解耦,使得二者能够独立变动。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接构造,来实现二者的解耦。
  • 这种模式波及到一个作为桥接的接口,使得实体类的性能独立于接口实现类。这两种类型的类可被结构化扭转而互不影响。
品牌接口Brand
//产品品牌public interface Brand {    void name();}
实现类品牌A和品牌B
//A品牌public class ABrand implements Brand {    @Override    public void name() {        System.out.print("A品牌");    }}//B品牌public class BBrand implements Brand {    @Override    public void name() {        System.out.print("B品牌");    }}
形象产品类Product
//形象产品类public abstract class Product {    //带品牌,组合形式    private Brand brand;    public Product(Brand brand) {        this.brand = brand;    }    public void name() {        brand.name();//品牌名称    }}
子类产品C和D
//C产品public class CProduct extends Product {    public CProduct(Brand brand) {        super(brand);    }    @Override    public void name() {        super.name();        System.out.println("C产品");    }}//D产品public class DProduct extends Product {    public DProduct(Brand brand) {        super(brand);    }    @Override    public void name() {        super.name();        System.out.println("D产品");    }}
测试类
public class Test {    public static void main(String[] args) {        Brand brandA = new ABrand();//A品牌        Brand brandB = new BBrand();//B品牌        CProduct cProduct = new CProduct(brandA);//C产品,带A品牌,即A品牌的C产品        DProduct dProduct = new DProduct(brandB);//D产品,带B品牌,即B品牌的D产品        cProduct.name();        dProduct.name();        /**         * 输入后果:         * A品牌C产品         * B品牌D产品         */    }}
测试后果
A品牌C产品B品牌D产品