原创 學習日記之備忘錄模式和繼承、面向對象設計

備忘錄模式(Memento):在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就可將該對象恢復到原先保存的狀態。 (1),把要保存的細節給封裝在 Memento 中,那一天要更改保存的細節也不用影響客戶

原创 學習日記之命令模式和Effective C++

命令模式(Command): 講一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化,對請求隊列或記錄請求日誌,以及支持可撤銷的操作。 命令模式優點: (1),它能較容易地設計一個命令隊列。 (2),在需要的情況下,可以較容易

原创 學習日記之抽象工廠模式和Effective C++

抽象工廠模式(Abstract Factory):提供一個創建一系列相關或者相互依賴對象的接口,而無需制定他們具體的類。 (1),工廠方法模式是定義一個用於創建對象的接口,讓子類決定實例化哪一個類。 (2),爲創建不同的產品對象,客戶端應

原创 學習知識

算法                 程序員面試、算法研究、編程藝術、紅黑樹、數據挖掘5大經典原創系列集錦與總結 作者:July--結構之法算法之道blog之博主。 時間:2010年10月-2013年10月。 出處:http://

原创 QcomboBox item style

The solution is to create a ListView objectset its stylesheetuse it as the view of the ComboBoxHere is how: int ma

原创 學習日記之原型模式和Effective C++

原型模式(Prototype):用原型實例制定創建對象的種類,並且聽過拷貝這些原型創建新的對象。 淺複製:如果字段是值類型的,則對該字段執行逐位複製,如果字段是引用類型,則複製引用但不復制引用的對象;因此,原始對象及其副本引用同一對象。

原创 Qt項目管理

轉自:dbzhang800 採用一個非常簡單的Qt程序作爲例子,通過pro文件的合理編寫,使得我們的程序在使用動態庫的時候,幾乎可以忽略掉動態庫的存在。它包括3部分: 生成動態庫使用動態庫生成與使用的自動化 測試環境: ubuntu

原创 Qt 已註冊元對象類型

Qt內置了一部分元對象類型,如果下列不包含的元對象,在信號槽或者QVariant中必須註冊。 註冊方法:std::string Q_DECLARE_METATYPE(std::string) int id = qRegisterMe

原创 Qt GPL, LGPL & Commercial License

Qt 4.5中提供了三種授權協議,分別是GPL, LGPL和Commercial,可能很多人要問,爲什麼同樣的一個產品要提供三種授權協議,什麼情況下使用什麼的樣的授權協議最合適?在這裏我就大致解釋一下: GPL全稱是The GNU G

原创 針對UAC安全的研究與思考

簡要概述:9月24日亞洲知名安全技術峯會SyScan在北京召開。在大會上Instruder做了《深入思考UAC背後的安全問題》演講。會後筆者針對這一議題做了詳細分析與測試,就UAC提升用戶權限的的問題做了總結與分析。   研究背景:現

原创 windbg調試命令

 #調試命令窗口  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #重要說明 (1) windbg命令分爲標準命令,元命令和擴展命令。      

原创 學習日記之代理模式和Effective C++

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

原创 學習日記之迪米特法則、外觀模式和 Effective C++

迪米特法則(最少知識原則):如果兩個類不必彼此直接通信,那麼兩個類就不應該發生直接的相互作用。如果其中一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。 (1),在類的結構設計上,每一個類都應當儘量降低成員的訪問權限。

原创 Qt LGPL詳解

最近一直在學習 Qt。Qt 有兩個許可證:LGPL 和商業協議。這兩個協議在現在的 Qt 版本中的代碼是完全一致的(潛在含義是,Qt 的早期版本,商業版的 Qt 通常包含有一些開源版本所沒有的庫,比如 QtSingleApplicatio

原创 學習日記之觀察者模式

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