将抽象与具体实现分离,通过抽象类关联其具体实现,降低类与类之间的耦合度。下面是一个车厂和一个汽车品牌实现桥接模式的例子。汽车品牌抽象接口声明了获取汽车品牌的方法。汽车信息公共抽象类Depot{Brandbrand;的抽象方法publicvoidsetBrand(Brandbrand){this.brand=brand;}publicabstractvoidmessage();}对于汽车品牌的具体实现,我们添加丰田和福特两个品牌publicclassToyotaimplementsBrand{privatefinalStringname="Toyota";@OverridepublicStringbrandName(){返回名称;}}publicclassFordimplementsBrand{privatefinalStringname="Ford";@OverridepublicStringbrandName(){返回名称;}}两个汽车厂的具体实现,增加一汽和上汽两个汽车厂类());}}publicclassSAICDepotextendsDepot{@Overridepublicvoidmessage(){System.out.println("上汽汽车厂生产"+super.brand.brandName());}}测试类公共classBridgeTest{@Testpublicvoidtest(){Depotfaw=newFAWDepot();faw.setBrand(新福特());faw.message();Depotsaic=newSAICDepot();saic.setBrand(新丰田());saic.message();}}====结果====一汽汽车厂生产的福特上汽汽车厂生产的丰田我们从上面的实现可以发现,Depot中只引用了Brand,这两个类(接口)是抽象层次,不具体到某个车厂和具体品牌,然后可以通过两个抽象类,Depot具体实现类和品牌具体实现类建立的“桥梁”,在客户端进行组合
