橋接模式屬于先天模式,這里的先天模式就是說一開始就要把結構搭建好,方便后來的擴展,而不是對已經出現的模塊和接口進行改進擴展的。橋接的核心在于實體類和操作類之間的聚合關系,這個聚合關系就是我們所說的"橋",不同于裝飾、代理和適配器模式的中的聚合關系,橋接不存在兩者之間的繼承關系,操作類是完全解耦的,而實體類對于操作類也只是弱耦合。
作用
將抽象部份與它的實現部份分離,使它們都可以獨立地變化。
類視圖
實現
//操作類class action{public: virtual void do()=0;};class write : public action{public: void do(){ count << "to write/n";}};class draw : public action{public: void do() { count << "to draw/n";}};class gift : public action{public: void do {count << "to gift/n";}};//實體類class pen{public: pen(): m_pAction(NULL){} virtual ~pen(){ delete m_pAction;} virtual void use(); void setaction(action* pAction){m_pAction = pAction;}protected: action* m_pAction;};class pencil : public pen{ void use() { cout << "use pencil "; m_pAction.do(); }};class brush : public pen{ void use() { cout << "use brush "; m_pAction.do(); }};class goldenpen : public pen{ void use() { cout << "use goldenpen "; m_pAction.do(); }};int main{ ballpen inHand; inHand.setaction(new gift()); inHand.use();}
上面例子簡單的說明了實體類pen和操作類action之間的橋接關系,如果需要擴展的情況下,我們可以分別對pen和action進行繼承擴展,不會牽扯到另外一邊的改動。比如我們再擴展一種筆或者一種筆的用法,直接擴展筆的種類或者用法的種類即可,這樣就達到了低耦合易擴展的目的。
應用場景
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答