原创 軟件設計原則----合成/聚合複用原則(CARP)

“要儘量使用合成/聚合,儘量不要使用繼承。” 陳述: 在一個新的對象裏面使用一些已有的對象,使之成爲新對象的一部分,新對象通過向這些對象的委派達到複用已有功能的目的。 引入: 如我們所知,在面向對象設計裏,不同環境中複用已有設計和實現的基

原创 現代瀏覽器的工作原理【一】

序言 作爲一個Web開發者,學習的瀏覽器操作的內部可以幫助您做出更好的決策,以及開發實踐的最佳做法。 雖然這是一個相當漫長的文件,我們建議你花一些時間來挖掘研究, 我們保證你會很高興你這樣做的話。 簡介 Web瀏覽器可能是最廣泛使用的軟件

原创 Windows線程同步(一):臨界區對象

爲什麼使用線程同步? 同步可以保證在一個時間內只有一個線程對某個資源(如操作系統資源等共享資源)有控制權。共享資源包括全局變量、公共數據成員或者句柄等。同步還可以使得有關聯交互作用的代碼按一定的順序執行。 線程同步的方式? 同步對象有:C

原创 需求分析知識點滴【二】

1. 完成需求獲取的標誌 用戶總是按其重要性的順序來確定用例的,如果用戶不能想出更多的用例; 如果用戶開始討論已討論過的用例或需求; 如果用戶提出新的用例,但卻可以從其它用例導出或是其它用例的可選過程;如果所提出的新的需求是針對將來產品

原创 軟件設計原則----接口隔離原則(ISP)

“使用多個專門的接口比使用單一的總接口要好”。 “一個類對另外一個類的依賴性應該建立在最小的接口上”。 陳述: 不應該強迫客戶依賴於他們不用的方法。一個類的不內聚的“胖接口”應該被分解成多組方法,每一組方法都服務於一組不同的客戶程序。例

原创 軟件設計原則----開-閉原則(OCP)

設計一個模塊時,應當使該模塊在不被修改的前提下被擴展,即可在不必修改源代碼的情況下改變該模塊的行爲。  陳述:  軟件實體(類、模塊、函數等)應該是可以擴展的,同時還可以是不必修改的,更確切的說,函數實體應該: (1)對擴展是開放的 當應

原创 軟件設計原則----單一職責原則(SRP)

陳述: 就一個類而言,應該只有一個導致其變化的原因 分析: 一個職責就是一個變化的軸線。 一個類如果承擔的職責過多,就等於將這些職責耦合在一起。一個職責的變化可能會虛弱或者抑止這個類完成其它職責的能力。多職責將導致脆弱性的臭味。 示例1:

原创 2011年終工作總結與思考

    2011年已到尾聲,在這最後的幾天裏,我需要的是認真思考、總結一下今年的工作。     今年的事情比較專一,我一直在開發,其實很喜歡這種從頭到尾做一件事情的感覺,比起東跑西顛,至少能在某一方面,有一定的積累。在技術水平上,今年是深

原创 軟件設計原則----迪米特法則(LoD)

“一個對象應該對其他對象有儘可能少的瞭解” “Only talk to your  immediate friends” “Don’t talk to strangers” “每一個軟件單位對其他的單位都只有最少的知識,而且侷限於那些與本

原创 軟件設計原則----LisKov替換原則(LSP)

“一個軟件實體如果使用的是一個基類的話,一定適用於其子類,而且根本不能覺察出基類對象和子類對象的區別。” 陳述: 子類型(Subtype)必須能夠替換他們的基類型(Basetype)Barbara Liskov對原則的陳述:若對每個類型S

原创 html 調用ActiveX

html網頁調用ActiveX控件時,要獲取到ActiveX的ClassID,這個ClassID是註冊到系統裏的,而不是工程中的uuid,(下圖爲uuid)。 正確的是在註冊表的HKEY_CLASSES_ROOT中查找你的工程名的“項”

原创 軟件設計原則----依賴倒置原則(DIP)

"要依賴於抽象,不要依賴於具體。” “要針對接口編程,不要針對實現編程。” 陳述: 高層模塊不應該依賴於低層模塊。二者應該依賴於抽象。抽象不應該依賴於細節。細節應該依賴於抽象。分析: 所謂“倒置”是相對於傳統的開發方法(例如結構化方法)

原创 淺談幾種創建型模式的優缺點及其相關性

本文只是從文字、概念上來描述一下,並沒有給出類圖和相關代碼,適合有一定基礎的人閱讀。 在23種GOF設計模式中,創建模式主要有以下幾種: 簡單工廠模式Simple Factory 工廠方法模式Factory Method 抽象工廠模式A

原创 CPictureEx類實現GIF圖片的縮放

關於CPictureEx類,網上很多文章了。但基於CPictureEx展示的GIF圖片,卻無法縮放,有些不方便。因項目中用到了這個類,而且要實現縮放的功能。於是研究了一下,現將相關代碼寫下來,僅供參考。 分兩步: 1、主要是修改OnPai

原创 [推薦]《C/C++高質量編程》筆記

引言:《C/C++高質量編程》這本書,很好的給出了一些編程規範,是每一個C/C++程序員都應該認真讀取的一本書。幾次閱讀,幾次忘記,今天把一些關鍵點記錄下來,便於以後繼續學習和參考。建議此書和谷歌C++編碼規範一起使用,相得益彰。  【