橋接模式-pattern系列

git鏈接

橋接模式

橋樑模式的用意是"將抽象化(Abstraction)與實現化(Implementation)脫耦,使得二者可以獨立地變化"。這句話有三個關鍵詞,也就是抽象化、實現化和脫耦。

  • 抽象化
    存在於多個實體中的共同的概念性聯繫,就是抽象化。作爲一個過程,抽象化就是忽略一些信息,從而把不同的實體當做同樣的實體對待。
  • 實現化
    抽象化給出的具體實現,就是實現化。
  • 脫耦
    所謂耦合,就是兩個實體的行爲的某種強關聯。而將它們的強關聯去掉,就是耦合的解脫,或稱脫耦。在這裏,脫耦是指將抽象化和實現化之間的耦合解脫開,或者說是將它們之間的強關聯改換成弱關聯。

橋樑模式中的所謂脫耦,就是指在一個軟件系統的抽象化和實現化之間使用組合/聚合關係而不是繼承關係,從而使兩者可以相對獨立地變化。

例子:
一個杯子,它有形狀,有顏色,我們得到下面圖的關係,雖然我們單獨把顏色和形狀抽象出來了,擔當我們新出現一種顏色的時候,我們需要新增出和形狀的實現進行組合的全部類。

這個是提供的橋接模式的解決方案的類圖:

解釋地址:https://www.journaldev.com/1491/bridge-design-pattern-java

因爲前面提到在顏色和形狀的上面是一個杯子的抽象,所以我想在實際使用中我們更多的可能是,將多個不同類型的實現部分抽象後,以組合的關係進行關聯。

我們可以看見shape 和 color (實現)可以擴展,cup的種類(抽象)也可以擴展。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章