最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++設(shè)計(jì)模式之橋接模式(Bridge)

 更新時(shí)間:2018年04月07日 12:10:20   作者:chencarl  
這篇文章主要為大家詳細(xì)介紹了C++設(shè)計(jì)模式之橋接模式Bridge,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

橋接模式屬于先天模式,這里的先天模式就是說(shuō)一開始就要把結(jié)構(gòu)搭建好,方便后來(lái)的擴(kuò)展,而不是對(duì)已經(jīng)出現(xiàn)的模塊和接口進(jìn)行改進(jìn)擴(kuò)展的。橋接的核心在于實(shí)體類和操作類之間的聚合關(guān)系,這個(gè)聚合關(guān)系就是我們所說(shuō)的"橋",不同于裝飾、代理和適配器模式的中的聚合關(guān)系,橋接不存在兩者之間的繼承關(guān)系,操作類是完全解耦的,而實(shí)體類對(duì)于操作類也只是弱耦合。

作用

將抽象部份與它的實(shí)現(xiàn)部份分離,使它們都可以獨(dú)立地變化。

類視圖

實(shí)現(xiàn)

//操作類
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";}
};

//實(shí)體類
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();
}

上面例子簡(jiǎn)單的說(shuō)明了實(shí)體類pen和操作類action之間的橋接關(guān)系,如果需要擴(kuò)展的情況下,我們可以分別對(duì)pen和action進(jìn)行繼承擴(kuò)展,不會(huì)牽扯到另外一邊的改動(dòng)。比如我們?cè)贁U(kuò)展一種筆或者一種筆的用法,直接擴(kuò)展筆的種類或者用法的種類即可,這樣就達(dá)到了低耦合易擴(kuò)展的目的。

應(yīng)用場(chǎng)景

  • 當(dāng)對(duì)象存在多種變化的因素時(shí),考慮對(duì)其變化的因素和場(chǎng)景進(jìn)行抽象,然后進(jìn)行橋接;如筆擁有不同的功能。
  • 當(dāng)多個(gè)對(duì)象存在多種變化的因素時(shí),考慮將這部分變化的部分抽象出來(lái)再聚合進(jìn)來(lái);比如不同品牌的電腦安裝不同的系統(tǒng)、使用不同的軟件等,相當(dāng)于將第一條進(jìn)行橫向擴(kuò)展,增加橋接的數(shù)量。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

新闻| 招远市| 四会市| 德惠市| 桃源县| 景洪市| 封开县| 中山市| 竹北市| 彭阳县| 克拉玛依市| 旬阳县| 内黄县| 大姚县| 九寨沟县| 沁源县| 司法| 平阴县| 无极县| 延川县| 十堰市| 安远县| 射洪县| 湘阴县| 淮北市| 上饶县| 和静县| 金坛市| 博湖县| 嵩明县| 阿克苏市| 前郭尔| 丹阳市| 富平县| 西宁市| 遵义市| 昆山市| 营口市| 高邮市| 宿松县| 夏河县|