原创 c++設計模式之簡單工廠模式

簡單工廠模式並不是一個設計模式 #ifndef SimpleFactory_h #define SimpleFactory_h typedef enum ProductType { ProductTypeA = 1, Prod

原创 c++設計模式之外觀模式

外觀模式提供了一個統一的接口, 用來訪問子系統中的一羣接口, 外觀定義了一個高層接口, 讓子系統用更容易使用 實現一個外觀, 需要將子系統組合進外觀中, 然後將工作委託給子系統執行 外觀模式是提供一個簡單的接口, 好讓一個子系統更易用

原创 c++設計模式之抽象工廠模式

抽象工廠模式提供接口用於創建相關對象, 而不需要明確指定具體類 客戶從具體的產品中被解耦 抽象工廠使用對象組合, 對象的創建被是現在工廠接口所暴露的方法中 抽象工廠創建相關的對象家族, 而不需要依賴它們的具體類 #ifndef Ab

原创 c++設計模式之迭代器模式

迭代器模式提供了一種方法順序訪問一個聚合對象中的各個元素, 而又不暴露其內部的表示 迭代器模式將元素之間的遊走的責任交給迭代器, 而不是聚合對象, 讓聚合的接口和實現更簡潔 #ifndef Iterator_h #define It

原创 c++設計模式總結

設計模式根據模式的目的可以分爲創建型, 行爲型和結構型 創建型模式涉及到將對象實例化, 這類模式都提供了一個方法將客戶從所需要實例化的對象中解耦 工廠方法模式: 由子類決定要創建的具體類是哪一個 抽象工廠模式: 允許客戶創建對象的家族,

原创 c++設計模式之裝飾者模式

裝飾者模式動態地將責任附加到對象上, 如果要擴展功能, 裝飾者模式提供了比繼承更有彈性的替代方案. 裝飾者模式有一羣裝飾者類, 這些類包裝具體的類組件 #ifndef Decorator_h #define Decorator_h

原创 c++設計模式之模板方法模式

模板方法模式是指在一個方法中定義一個算法的骨架, 將一些步驟延遲到子類中 模板方法使得子類可以在不改變算法結構的情況下, 重新定義算法中的某些步驟 抽象方法由子類實現 這樣可以確保算法的結構不變, 由子類提供部分實現 策略模式和模板方法模

原创 vs2008編譯osip2 eXosip2

1. 下載libosip2-3.6.0.tar.gz     下載地址: 點擊打開鏈接 2. 下載libeXosip2-3.6.0.tar.gz     下載地址: 點擊打開鏈接 3. 編譯libosip2-3.6.0     由於存在個

原创 sip註冊流程

sip註冊流程圖 1. 客戶端發送一條不帶認證信息的REGISTER Request-Line: REGISTER sip:[email protected]:10086 SIP/2.0 Via: SIP/2.0/UDP 10.13.1.

原创 c++設計模式之工廠方法模式

工廠方法模式定義了一個創建對象的接口, 由子類決定實例化的類是哪一個 工廠方法模式將子類的實例化推遲到了子類 所有的工廠模式都是封裝對象的創建. 工廠方法模式讓子類決定創建的對象是什麼 工廠方法模式使用繼承將對象的創建委託給子類, 子類實

原创 c++設計模式之代理模式

代理模式爲另一個對象提供了一個替身或佔位符以控制對這個對象的訪問 使用代理模式創建代表對象, 讓代表對象控制某對象的訪問, 被代理的對象可以是遠程的對象, 創建開銷大的對象或需要安全控制的對象 代理模式結構上類似於裝飾者模式 #if

原创 c++設計模式之命令模式

命令模式將"請求"封裝成對象, 以便使用不同的請求, 隊列, 或者日誌來參數化其他對象. 命令模式也支持可撤銷的操作. 命令模式將發出請求的對象和執行請求的對象解耦, 在被解耦的兩者之間通過命令對象進行溝通 命令模式的用途: 隊列請求,

原创 c++設計模式之適配器模式

適配器模式將一個類的接口, 轉換成客戶期望的另一個接口, 適配器讓原本接口不兼容的類可以合作無間 適配器模式分爲類適配器與對象適配器 類適配器爲多重繼承 適配器模式將一個對象包裝起來以改變器接口, 裝飾者模式將一個對象包裝起來以增加新的行

原创 c++設計模式之組合模式

組合模式允許將對象組合成樹形結構來表現"整體/部分"層次結構. 組合能讓客戶以一致的方式處理個別對象以及對象組合 組合結構內的任意對象稱爲組件, 組件可以是組合, 也可以是葉節點 組合模式讓我們能用樹形方式創建對象的結構, 樹裏面包含了組

原创 c++設計模式之策略模式

策略模式定義了一系列算法, 分別封裝起來, 讓它們之間可以互相替換. 算法的變化獨立於使用算法的客戶. #ifndef Strategy_h #define Strategy_h class IAlogrithm // 抽象接口