使用Bridge模式的一個動機應該是:對象擁有多個屬性,行為,在不同的時刻由不同的屬性和行為組合可以表現出不同的外部特征。(即排列、組合形式)
如果對每一種屬性和行為的組合進行綁定,作為一個子類,那么勢必造成大量的子類存在。而且一旦原有的屬性改變,或者行為改變了,會導致原有的類需要重新修改編譯。
如果將屬性、行為分開,采用動態組合的方式,在運行時動態決定需要將那個屬性和那個行為搭配,除了可以減少子類的數量之外,還增強了未來的擴展性。
二、Bridge模式與Decorator模式的異同:
1).兩者都具有動態設定、改變類運行時功能的意圖和手法
2).前者著重的是在原有功能基礎上的小修改,并不需要將抽象和行為分開,后者則著重于整體的組合,抽象和實現分離
三、Bridge模式的特點:
·在抽象接口中包含了一個對行為接口的引用,這樣的話行為的操作將完全委托給行為接口完成,抽象類無需關心。
·在抽象類的繼承子類中,調用了行為類的子類來實現不同的行為。此時抽象類的子類中只知道屬性,但不知道具體的行為實現,實現了概念與行為的分離
·在行為類的繼承子類中,只知道執行相應的動作,但不知道具體的屬性,實現了行為和概念的分離
四、Bridge模式的實現圖例:

-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。