面向對象的設計思想

博主之間是作 Linux  C++ 軟件開發的,深入地領悟到了面向對象的設計思想。但新的工做崗位是作嵌入式開發的,用的是C語言,忽然有一點不太習慣。架構

C語言是一種面向過程的語言,它自己不像C++具有面向對象的功能,可是這不等於說C就不能寫出面向對象的軟件。函數

博主看過許多比較出名的開源軟件,如:dbus, avahi, cunit,雖然它們都是用C語言來實現的,但它們都融入了面向對象的設計思想,處處都是面對象的影子。工具


dbus 中的 DBusString 對象就相似於 C++中的 std::stringui


上面的這些函數就至關於 DBusString 的成員函數,每一個函數的第一個參數傳入的都是 DBusString*,這就至關於C++中的this指針。this

再如 avahi 中的 AvahiHashmap 對象:設計

還有今天博主才研究一下下的 cunit,代碼就不貼了。博主整理 TestDB.h 文件,畫了以下的UML類圖: 
指針

它定義了 CU_TestRegistry, CU_Suite, CU_Test 三個類,每一個類都有對應的成員函數。
對象

可見,它是嚴格遵循了面向對象的設計思想的。開發



面向對象是一種設計的思想,與具體實現的語言工具無關。能讓軟件架構更符合人的思惟模式,更爲清晰明瞭,更易於理解與維護。string

這是大型軟件必然的選擇。

相關文章
相關標籤/搜索