原创 ULM圖中類之間的關係:依賴,泛化,關聯,聚合,組合,實現

在UML中,類使用包含類名、屬性和操作且帶有分隔線的長方形來表示,如定義一個Employee類,它包含屬性name、age和email,以及操作modifyInfo() public class Employee { priv

原创 C++存儲區

全局變量和局部變量的存儲區域不同,全局變量存放在靜態數據區,局部變量存放在棧區。但還有一個小點就是存放在靜態數據區的變量是由低地址向高地址存放的,但存放在棧區的變量卻是由高地址向低地址存放的,存放在靜態數據區的還有靜態局部變量和靜態全局變

原创 C++之指針和引用詳解

指針和引用的區別:       1.指針是一個實體,而引用僅是個別名;       2.引用必須被初始化,指針不必;       3.引用只能在定義時被初始化一次,之後不可變;指針可以改變所指的對象;       4.可以有const指針

原创 C++設計模式之外觀模式(facade)(結構型)

一 引言 外觀模式(Facade)其實在開發過程中使用評率十分頻繁,或間接或直接使用,尤其是在當前各種第三方SDK 中,相當大的概率使用了外觀模式,通過一個外觀類使用的整個SDK的接口只有一個統一的高層接口,降低了用戶對接成本,也對用戶屏

原创 C++設計模式之策略模式(strategy)(行爲型)

一 定義 策略模式是指定義一系列的算法,把它們一個個封裝起來,並且使它們可相互替換。本模式使得算法可獨立於使用它的客戶而變化。也就是說這些算法所完成的功能一樣,對外的接口一樣,只是各自實現上存在差異。 策略模式把對象本身和運算規則區分開來

原创 C++設計模式之代理模式(proxy)(結構型)

一 定義 代理模式:爲其他對象提供一種代理以控制對這個對象的訪問。 代理模式分類 (1)遠程代理,也就是爲一個對象在不同的地址空間提供局部代表。這樣可以隱藏一個對象存在於不同地址空間的事實。 (2)虛擬代理,是根據需要創建開銷很大的對象。

原创 source insight 4高亮鼠標點擊的變量或者函數

在source insight中看代碼,有時候爲了方便需要高亮某一個變量,在source insight 4中按F8就可以高亮黃色顯示某一個變量。這種方法是挺不錯的,但是如果快速閱讀代碼或者分析代碼時,需要在幾個變量間不停快速切換的時候,

原创 C++設計模式之原型模式(prototype)(創建型)

一、原型(Prototype)模式概述 DP書上的定義爲:用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。其中有一個詞很重要,那就是拷貝(既clone)。可以說,拷貝(clone)是原型模式的精髓所在。其中拷貝分爲深拷貝和

原创 C++設計模式之觀察者模式(observer)(行爲型)

一 定義 觀察者模式:定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一主題對象。這個主題對象在狀態發生變化時,會通知所有觀察者對象,使他們能夠自動更新自己。 觀察者模式又叫做發佈-訂閱(Publish-Subscribe)模式、模

原创 C++設計模式之適配器模式(adapter)(結構型)

一、結構型模式概述     結構型模式(Structural Pattern)描述如何將類或者對象結合在一起形成更大的結構,就像搭積木,可以通過簡單積木的組合形成複雜的、功能更爲強大的結構。     結構型模式可以分爲類結構型模式和對象結

原创 C++設計模式之備忘錄模式(memento)(行爲型)

一、 定義 備忘錄(Memento):在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就可將對象恢復到原先保存的狀態。 二、 ULM圖 角色: (1)Originator(發起人):負責創建一個Me

原创 C++設計模式之狀態模式(state)(行爲型)

一 定義 狀態模式:允許一個對象在其內部狀態改變時改變它的行爲。對象看起來似乎修改了它的類。 狀態模式主要解決的是當控制一個對象狀態轉換的條件表達式過於複雜的情況。把不同狀態的操作分散到不同的狀態對象裏去完成。在很多情況下,一個對象的行爲

原创 C++設計模式之命令模式(command)(行爲型)

一 定義 命令模式(Command):將一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化,對請求進行排隊或記錄請求日誌,以及支持可撤銷的操作。     其本質是對命令的抽象和封裝,把通常的命令發起——>接收到命令並執行過程,

原创 C++設計模式之中介者模式(mediator)(行爲型)

一 定義 中介者模式:用一箇中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的交互。 二 ULM圖 角色 抽象中介者(Mediator):中介者定義一個接口用於與各同事(C

原创 ubuntu 源碼重裝vim

一 卸載自帶vi // 徹底卸載 vim sudo apt-get remove vim vim-runtime vim-tiny vim-common vim-scripts vim-doc 二 安裝git apt install gi