1. 程式人生 > >c++程式設計開發中有哪些常見的程式設計開發設計模式?

c++程式設計開發中有哪些常見的程式設計開發設計模式?

我們在學習使用c++程式設計開發語言來開發軟體的時候,根據不同的使用場景會用到不同的設計模式。下面我們就一起來了解一下這些模式的特點。
上海達內c++培訓
1、C++設計模式之橋接模式(Bridge)

橋接模式屬於先天模式,這裡的先天模式就是說一開始就要把結構搭建好,方便後來的擴充套件,而不是對已經出現的模組和介面進行改進擴充套件的。橋接的核心在於實體類和操作類之間的聚合關係,這個聚合關係就是我們所說的"橋",不同於裝飾、代理和介面卡模式的中的聚合關係,橋接不存在兩者之間的繼承關係,操作類是完全解耦的,而實體類對於操作類也只是弱耦合。

作用

將抽象部份與它的實現部份分離,使它們都可以獨立地變化。

應用場景

當物件存在多種變化的因素時,考慮對其變化的因素和場景進行抽象,然後進行橋接;如筆擁有不同的功能。

當多個物件存在多種變化的因素時,考慮將這部分變化的部分抽象出來再聚合進來;比如不同品牌的電腦安裝不同的系統、使用不同的軟體等,相當於將一條進行橫向擴充套件,增加橋接的數量。

2、C++設計模式之組合模式(Composite)

組合模式為了描述分支包含關係,也就是我們說的樹形關係,其物件分為枝和葉,每一枝可包含枝和葉,直到全部為葉節點。我們對枝和葉進行行為抽象,可認為枝和葉都是Component,而葉是小的操作單元,其下不存在枝和葉,而枝作為Composite裡面存有其下枝和葉的元件列表。

作用

將物件組合成樹形結構以表示“部分-整體”的層次結構,使得使用者對單個物件和組合物件的使用具有一致性

所以必須進行實現,但是在呼叫時沒有任何意義,這就帶來了一些使用的風險,安全的做法是將這些操作從基類中移除,新增到composite類中,這樣在編譯時就可以檢查到呼叫問題,不過這樣做顯然又阻礙了介面的一致性,權衡利弊的選擇還需自己根據需要來。

應用場景

常用的樹形結構操作,如檔案結構、選單、組織結構等

3、C++設計模式之享元模式(Flyweight)

享元模式顧名思義就是羽量級模式或者蠅級模式,形容體量小的應用,該模式主要的設計目的是為了迎合系統大量相似資料的應用而生,減少用於建立和操作相似的細碎物件所花費的成本。大量的物件會消耗高記憶體,享元模式給出了一個解決方案,即通過共享物件來減少記憶體負載。

作用

通過複用相同的物件來減少物件的建立數量,建立更小的物件組,並通過共享實現重用。通過歸類,將物件的屬性分為內蘊狀態和外蘊狀態。要建立具體的享元物件,我們需要建立一個享元工廠來統一管理物件的生成和輸出,享元工廠是實現享元模式的關鍵。

應用場景

需要建立大量物件時;

大多數物件可以分為內蘊和外蘊狀態;

應用程式需要使用多種物件,並且重複使用;