在以往的軟體開發過程中,我們總是強調模組之間要低耦合,模組本身要高內聚。那麼,可以通過哪些設計模式來實現呢?橋接模式就是不錯的乙個選擇。我們知道,在現實的軟體開發過程當中,使用者的要求是多種多樣的。比如說,有這麼乙個餃子店吧。假設餃子店原來只賣肉餡的餃子,可是後來一些吃素的顧客說能不能做一些素的餃子。聽到這些要求的老闆自然不敢怠慢,所以也開始賣素餃子。之後,又有顧客提出,現在的肉餡餃子只有豬肉的,能不能做點牛肉、羊肉餡的餃子?一些只吃素的顧客也有意見了,他們建議能不能增加一些素餡餃子的品種,什麼白菜餡的、韭菜餡的,都可以做一點。由此看來,顧客的要求是一層一層遞增的。關鍵是我們如何把顧客的要求和我們的實現的介面進行有效地分離呢?
其實我們可以這麼做,通常的產品還是按照共同的屬性進行歸類。
typedef struct _meatdumpling
meatdumpling;
typedef struct _normaldumpling
normaldumpling;
上面只是對餃子進行歸類。第一類是對肉餡餃子的歸類,第二類是對素餡餃子的歸類,這些地方都沒有什麼特別之處。那麼,關鍵是我們怎麼把它和顧客的要求聯絡在一起呢?
typedef struct _dumplingreuqest
dumplingrequest;
這裡定義了乙個餃子買賣的介面。它的特別支援就在於兩個地方,第一是我們定義了餃子的型別type,這個type是可以隨便擴充的;第二就是這裡的pdumpling是乙個void*指標,只有把它和具體的dumpling繫結才會衍生出具體的含義。
void buy_dumpling(dumplingreuqest* pdumplingrequest)
c 設計模式 橋接模式
橋接模式在介面卡模式上做了一定的擴充套件。橋接是計算機網路中的用語,本意是指通過網橋把兩個區域網連線在一起。假如同時有a和b兩個抽象類,在a中包含了b的指標,那麼就好像把a和b兩個類結合在了一起,於是叫做橋接模式。例如葡萄,可以有青葡萄,紫葡萄,而酒可以有低度數酒,高度數酒。把兩個類結合在一起,就可...
C 設計模式 橋接模式
橋接模式 bridge 將抽象部分與它的實現部分分離,使得他們都可以獨立的變化 橋接模式.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include using namespace std class handsetsoft 手機軟體 class handsetgame publ...
設計模式 橋接模式
橋接模式 多維 如車行駛在路上。車分各種品牌 各種型號各種排氣 道路分街道 告訴 山地等 駕駛員分男女 為了減少類的數量。如果按照繼承實現會照成大量冗餘的類,類的數量會相當之大 package com.cn.duduyu.bridgepattern.car public abstract class...