將抽象部分與它的實現部分分離,使它們都可以獨立地變化。
抽象與它的實現分離,並不是說讓抽象類與其派生類分離,因為這沒有任何意義,實現指的是抽象類和它的派生類用來實現自己的物件。
實現系統可能有多角度分類,每一種分類都有可能變化,那麼就把這種多角度分離出來讓它們獨立變化,減少它們之間的耦合。
基本**:
//抽象基類
class abstraction
public virtual void operation()
//抽象基類的乙個實現
class refinedabstraction:abstraction
}//具體實現的基類
abstract class implementor
//具體實現
class concreteimplementora : implementor
}class concreteimplementorb : implementor
}呼叫:
abstraction ab = new refinedabstraction();
ab.setimpementor(new concreteimplementora());
ab.operation();
ab.setimpementor(new concreteimplementorb());
ab.operation();
//松耦合的程式
//手機軟體抽象類
abstract class handsetsoft
}//手機遊戲
class handsetgame:handsetsoft
}//手機通訊錄
class handsetaddresslist:handsetsoft
}//手機品牌抽象類
abstract class handsetbrand
public virtual void run(handsetbrand hb)
}//手機品牌m
class handsetbrandm:handsetbrand
//手機品牌n
class handsetbrandn:handsetbrand
呼叫:handsetgame game = new handsetgame();
handsetaddresslist addresslist = new handsetaddresslist();
handsetbrand hb = new handsetbrandm();
hb.sethandsetsoft(game);
hb.run(hb);
hb.sethandsetsoft(addresslist);
hb.run(hb);
hb = new handsetbrandn();
hb.sethandsetsoft(game);
hb.run(hb);
hb.sethandsetsoft(addresslist);
hb.run(hb);
設計模式 橋接模式
橋接模式 多維 如車行駛在路上。車分各種品牌 各種型號各種排氣 道路分街道 告訴 山地等 駕駛員分男女 為了減少類的數量。如果按照繼承實現會照成大量冗餘的類,類的數量會相當之大 package com.cn.duduyu.bridgepattern.car public abstract class...
設計模式 橋接模式
設計模式 橋接模式 橋接模式 bridge pattern 對應英文名稱可以是bridge或者bradge任意一種都可以。在軟體系統中,某些型別由於自身的邏輯,它具有兩個或多個維度的變化,那麼如何應對這種 多維度的變化 如何利用物件導向的技術來使得該型別能夠輕鬆的沿著多個方向進行變化,而又不引入額外...
設計模式 橋接模式
橋接模式 用來解決多維度變化問題,一般適用於解決乙個物件有多個屬性同時變化,通過橋接的方式使多種屬性變化解耦,場景 1.畫筆 大小有大中小三種,每種對應5種不同的顏色 這裡的變化屬性為大小 顏色 詳解 抽象類 abstraction 定義抽象類的介面,維護乙個指向implementor型別物件的指標...