【2013-12-17】设计模式学习笔记:桥梁模式

发布时间:2026/7/14 18:56:50
【2013-12-17】设计模式学习笔记:桥梁模式 [历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2013-12-17 标题设计模式学习笔记桥梁模式分类编程 / 设计模式 / java 标签设计模式·java·桥梁模式设计模式学习笔记桥梁模式最近在看《设计模式之禅》这本书收获良多作者不愧是工作多年的大牛将各种设计模式讲解的非常透彻。这里备份下书中的【 桥梁模式 】代码github【 https://github.com/cstriker1407/design_pattern 】abstraction包FactorypublicabstractclassFactory{privateProductproduct;publicFactory(Productproduct){super();this.productproduct;}publicvoidmakeMoney(){product.beProducted();product.beSelled();}}publicclassHouseFactoryextendsFactory{publicHouseFactory(Househouse){super(house);}OverridepublicvoidmakeMoney(){super.makeMoney();System.out.println(house factory make money);}}publicclassSanzaiFactoryextendsFactory{publicSanzaiFactory(Productproduct){super(product);}OverridepublicvoidmakeMoney(){super.makeMoney();System.out.println(sanzai factory make money);}}implementorpublicabstractclassProduct{publicabstractvoidbeProducted();publicabstractvoidbeSelled();}publicclassHouseextendsProduct{OverridepublicvoidbeProducted(){System.out.println(House is producted);}OverridepublicvoidbeSelled(){System.out.println(House is selled);}}publicclassIPodextendsProduct{OverridepublicvoidbeProducted(){System.out.println(IPod is producted);}OverridepublicvoidbeSelled(){System.out.println(IPod is selled);}}publicclassMp3extendsProduct{OverridepublicvoidbeProducted(){System.out.println(Mp3 is producted);}OverridepublicvoidbeSelled(){System.out.println(Mp3 is selled);}}测试代码publicclassBridgeTest{publicstaticvoidtest(){HousehousenewHouse();HouseFactoryhouseFactorynewHouseFactory(house);houseFactory.makeMoney();Mp3mp3newMp3();SanzaiFactorysanzaiFactorynewSanzaiFactory(mp3);sanzaiFactory.makeMoney();}}备注通过代码可以发现由于Factory中引用了Product通过这层桥梁关系当Product更改时Factory可以快速的更改业务。