其實剛接觸橋接模式的時候,認為橋接模式和策略模式非常相似。下面是他們的uml圖
可以看出非常的相似,很難說出差別。那麼就舉個栗子,現在畫畫,有3種圖形,圓形、長方形、三角形。分別有3種顏色,黑白灰。那麼如果採用策略模式的話,那麼strategy可能就會有3*3=9個類,然後在和context進行關聯,主要體現在封裝了演算法,達到直接呼叫其中乙個類就能夠得到相應的結果。如果是採用橋接模式的話,那麼就只需要6個類,3個refinedabstraction類,3個implmentor類,從而達到3*3=9的效果,而橋接模式更加注重的是介面分離的一種思想。並且從類圖中可以發現,橋接模式更加複雜。
1.首先設定乙個圖形的超類
/**
* 圖形超類
*/public abstract class shape
public abstract void draw();
}
2.設定乙個顏色的介面
public inte***ce color
3.圖形的兩個子類。
/**
*長方形
*/public class rectangle extends shape
}/**
*圓形*/public class circle extends shape
}
4.顏色的子類
public class gray implements color
}public class black implements color
}
5.最後便是測試類。
public static void main(string args)
這就是橋接模式,總結一下,橋接模式注重於介面的隔離,從而達到解耦,而策略模式更加注重於結果。 設計模式 橋接模式
橋接模式 多維 如車行駛在路上。車分各種品牌 各種型號各種排氣 道路分街道 告訴 山地等 駕駛員分男女 為了減少類的數量。如果按照繼承實現會照成大量冗餘的類,類的數量會相當之大 package com.cn.duduyu.bridgepattern.car public abstract class...
設計模式 橋接模式
設計模式 橋接模式 橋接模式 bridge pattern 對應英文名稱可以是bridge或者bradge任意一種都可以。在軟體系統中,某些型別由於自身的邏輯,它具有兩個或多個維度的變化,那麼如何應對這種 多維度的變化 如何利用物件導向的技術來使得該型別能夠輕鬆的沿著多個方向進行變化,而又不引入額外...
設計模式 橋接模式
橋接模式 用來解決多維度變化問題,一般適用於解決乙個物件有多個屬性同時變化,通過橋接的方式使多種屬性變化解耦,場景 1.畫筆 大小有大中小三種,每種對應5種不同的顏色 這裡的變化屬性為大小 顏色 詳解 抽象類 abstraction 定義抽象類的介面,維護乙個指向implementor型別物件的指標...