Java设计模式---桥接Bridge模式
生活随笔
收集整理的這篇文章主要介紹了
Java设计模式---桥接Bridge模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考于 :
大話設計模式
馬士兵設計模式視頻
寫在開頭: 橋接模式主要用于一件事物分成了兩個維度,進行排列組合,比如禮物,可以分成優雅的禮物(抽象),花(具體),排列組合優雅的花!
1.為什么使用橋接模式
小丁追小彭,送禮物必不可少。面向對象的思維,如何去實現這個禮物,先定義一個禮物的接口或抽象類,然后只要實現了這個接口那就算一個禮物。
小彭是一個精致的女孩,我要送一個精致的禮物,好,按照上面的思路,實現禮物接口。小丁進了花店,哇,花朵,嗯,花朵也算禮物,實現禮物接口。
小丁想挑精致的花朵,用面向對象的思想,嗯,直接繼承精致的禮物就實現了精致花朵。
但是,小丁仔細一想,這只是花店,只有花朵,實現起來不復雜,如果進了一家百貨商店,那么就要這樣實現,相當麻煩。
2.使用橋接模式
使用前先解釋上面圖片中的話:
將抽象部分和實現部分分離 : 上面例子中,精致的禮物就是一個比較抽象的部分,精致的花就是一個實現部分,上面例子中,這兩個是繼承關系,現在需要進行分離。
使用聚合關系來替換繼承關系
下面代碼中Gift接口可去,去了后類的關系就和最上面那張UML一樣
下面代碼的UML類圖
?
package com.dingyu; /*** 實現了這個接口,表示你是一個禮物* @author dingyu**/ public interface Gift {} package com.dingyu; /*** 一個精致的禮物* 抽象部分有一個具體的部分* @author dingyu**/ public class GraceGift implements Gift {private GiftImpl giftImpl;public GraceGift(GiftImpl giftImpl) {this.giftImpl = giftImpl;}public GiftImpl getGiftImpl() {return giftImpl;}public void setGiftImpl(GiftImpl giftImpl) {this.giftImpl = giftImpl;}} package com.dingyu; /*** 具體的禮物* @author dingyu**/ public interface GiftImpl {} package com.dingyu;public class Flower implements GiftImpl {} package com.dingyu;public class Shorts implements GiftImpl {} package com.dingyu;/*** 男孩類* * @author dingyu**/ public class Boy {private String name = "xiaoding";public void sendGift() {Gift gift1;Gift gift2;gift1 = new GraceGift(new Shorts());gift2 = new GraceGift(new Flower());} }?
?
轉載于:https://www.cnblogs.com/dddyyy/p/10046548.html
總結
以上是生活随笔為你收集整理的Java设计模式---桥接Bridge模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电力电子技术学习笔记
- 下一篇: Java工程师之SpringBoot系列