原创 Iterator 迭代器模式

      Iterator 迭代器模式:提供一種方法順序訪問一個聚合對象中各個元素,而又不需要暴露該對象的內部表示,又稱遊標(Cursor)。該模式的應用應該十分熟悉了,C++ 標準庫 STL 中不同的容器都提供了相同的迭代器接口。這一

原创 使用 CL 編譯器選項查看 C++ 類內存佈局

     今天查資料的時候發現 VS 編譯器 CL 的一個編譯選項可以查看 C++ 類的內存佈局,非常有用。使用如下,從開始程序菜單找到 Visual Stdio 2008/2005 Command Prompt,選擇 VS 的命令行工具

原创 Command 命令模式

    Command 命令模式,將一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排除或記錄請求日誌,以及支持可撤消的操作。也稱爲動作(Action),事務(Transaction)。     命令模式是通過將請求

原创 Composite 組合對象結構型模式

      Composite 組合對象結構型模式:將對象組合成樹形結構以表示“部分-整體”的層次結構。Composite 使得用戶對單個對象和組合的使用具有一致性。       Composite 模式適用於:1)你想表示對象的“部分-

原创 SVN 初步

      總是看到版本管理多麼重要多麼重要的,自己也想試一下到底是怎麼回事,上網一通搜索,發現其中兩個非常出名:CVS,SVN。 於是對比了一下,發現 SVN 的評價更加優秀,屬於後起之秀,有取代 CVS 之勢,所以就下載了 SVN 測

原创 Decorator 裝飾對象結構模式

      Decorator 裝飾對象結構模式:動態地給一個對象添加一些額外的職責,也稱包裝器 Wrapper。不過和 Adapter 模式不同,Decorator 模式僅改變對象的職責而不改變接口;而適配器則給對象一個全新的接口。  

原创 Adapter 適配器模式

      Adapter 適配器模式:將一個類的接口轉換成客戶希望的另一個接口。Adapter 模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。Adapter 模式也稱爲包裝器 Wrapper。      Adapter

原创 Chain Of Responsibility 職責鏈模式

    Chain of Responsibility 職責鏈模式:使多個對象都有機會處理請求,從而避免請求的發送者和接收者之間的耦合關係。將這些對象連成一條鏈,並沿着這條鏈傳遞該請求,直到有一個對象處理它爲止。     這一模式的想法是

原创 Bridge 橋接模式

          Bridge 橋接模式,將抽象與其實現解耦,使它們都可以獨立地變化。解耦(decouple)是指讓各種事物互相獨立地行事,或者至少明確地聲明之間的關係。抽象(abstraction)是指不同事物之間概念上的聯繫方式。

原创 Singleton 單件模式及其變體 Double-Checked Locking 雙重檢查鎖模式

        Singleton 單件模式, 及其變體 Double-Checked Locking 雙重檢查鎖模式, 都可以用於確保某個類只有一個對象實例化.兩個模式的區別在於: Singleton 模式用於單線程程序中, 而 Dou

原创 矩陣類,二維數組

      實現一個矩陣類,重載下標操作符, 即 m[i][j],  以及其它運算符 1:   2: //重載下標操作符, m[i][j], 方法1: 3: #pragma once 4: #includ

原创 Factory 工廠模式

       Factory 工廠模式: 面向對象應用程序都需要創建對象, 並且我們經常通過添加新類型類擴展應用程序, 使用工廠模式可以避免將創建對象的代碼散佈於整個系統, 程序中所有需要創建對象的代碼都轉到這個工廠執行, 這樣在增加新對

原创 Abstract Factory 抽象工廠模式

Abstract Factory 抽象工廠模式:提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。Abstract Factory 使用若干個工廠方法模式,每個工廠創建一個不同類型的對象。當創建一個工廠對象時,要決定如何

原创 Facade 外觀對象結構模式

     Facade 外觀對象結構模式:爲子系統中的一級接口提供了一個一致的界面,Facade 模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。      Facade 的意圖是希望簡化原有系統的使用方式,定義自己的接口。當

原创 Builder 構建器模式

      Builder 構建模式要解決的是這樣的問題:當我們要創建的對象很複雜的時候(通常是由很多其他的對象組合而成),我們要要複雜對象的創建過程和這個對象的表示(展示)分離開來,這樣做的好處就是通過一步步的進行復雜對象的構建,由於在