原创 8.命令模式

定義:將一個請求封裝成一個對象,從而讓你使用不同的請求把客戶端參數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能。 類型:行爲類模式 類圖: 命令模式的結構         顧名思義,命令模式就是對命令的封裝,

原创 4.單例模式

定義:確保一個類只有一個實例,而且自行實例化並向整個系統提供這個實例。 類型:創建類模式 類圖: 類圖知識點: 1.類圖分爲三部分,依次是類名、屬性、方法 2.以<<開頭和以>>結尾的爲註釋信息 3.修飾符+代表publi

原创 7.模版方法模式

定義:定義一個操作中算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變算法的結構即可重定義該算法中的某些特定步驟。 類型:行爲類模式 類圖:         事實上,模版方法是編程中一個經常用到的模式。先來看一個例子,某

原创 5.建造者模式

定義:將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 類型:創建類模式 類圖: 四個要素 產品類:一般是一個較爲複雜的對象,也就是說創建對象的過程比較複雜,一般會有比較多的代碼量。在本類圖中,產品類是

原创 9.迭代器模式

定義:提供一種方法訪問一個容器對象中各個元素,而又不暴露該對象的內部細節。 類型:行爲類模式 類圖:        如果要問java中使用最多的一種模式,答案不是單例模式,也不是工廠模式,更不是策略模式,而是迭代器模式,先來看

原创 1.簡單工廠模式

簡單工廠模式解釋:         簡單工廠模式(Simple Factory Pattern)屬於類的創新型模式,又叫靜態工廠方法模式(Static FactoryMethod Pattern),是通過專門定義一個類來負責創建其他類

原创 3.抽象工廠模式

定義:爲創建一組相關或相互依賴的對象提供一個接口,而且無需指定他們的具體類。 類型:創建類模式 類圖: 抽象工廠模式與工廠方法模式的區別         抽象工廠模式是工廠方法模式的升級版本,他用來創建一組相關或者相互依賴的對

原创 經典字符串處理問題

字符串的搜索,匹配,查找,壓縮,編碼/解碼,是一類非常常見的問題。 (1) 壓縮一個字符串當中的空格,例如把" I  like   csdn    "壓縮成"I like csdn"。注意,單詞之間的空格,N個空格要壓縮到1個,也就是要減

原创 C語言條件編譯及編譯預處理階段

一、C語言由源代碼生成的各階段如下: C源程序->編譯預處理->編譯->優化程序->彙編程序->鏈接程序->可執行文件        其中 編譯預處理階段,讀取c源程序,對其中的僞指令(以#開頭的指令)和特殊符號進行處理。或者說是

原创 C++宏定義詳解

一、#define的基本用法     #define是C語言中提供的宏定義命令,其主要目的是爲程序員在編程時提供一定的方便,並能在一定程度上提高程序的運行效率,但學生在學習時往往不能 理解該命令的本質,總是在此處產生一些困惑,在編程時

原创 C++ static、const和static const 以及它們的初始化

const定義的常量在超出其作用域之後其空間會被釋放,而static定義的靜態常量在函數執行後不會釋放其存儲空間。       static表示的是靜態的。類的靜態成員函數、靜態成員變量是和類相關的,而不是和類的具體對象相關的。即使沒

原创 win7 64位 彙編環境搭建

最近在學習彙編與接口技術,但是在自己的機子上實驗的時候,尷尬地發現我們的win 7 64位環境下,在DOS下竟然沒有debug.exe,好不容易找到一個debu.exe,在DOS環境下調用,竟然是下面的結果: win7 64位和32位

原创 2.工廠方法模式

定義:定義一個用於創建對象的接口,讓子類決定實例化哪一個類,工廠方法使一個類的實例化延遲到其子類。 類型:創建類模式 類圖: 工廠方法模式代碼 interface IProduct { public void prod

原创 堆和棧的區別(轉過無數次的文章)

 一、預備知識—程序的內存分配    一個由C/C++編譯的程序佔用的內存分爲以下幾個部分    1、棧區(stack)—   由編譯器自動分配釋放   ,存放函數的參數值,局部變量的值等。其    操作方式類似於數據結構中的棧。   

原创 c++(重載、覆蓋、隱藏)

成員函數的重載、覆蓋與隱藏 成員函數的重載、覆蓋(override)與隱藏很容易混淆,C++程序員必須要搞清楚概念,否則錯誤將防不勝防。 1 重載與覆蓋 成員函數被重載的特徵: (1)相同的範圍(在同一個類中); (2)函數名字相同; (