關於面向對象(1)抽象篇

        "面向對象"一直是我所推崇的解決複雜問題時應該採用的一種的有效的方法,更嚴格的說是一種方法論。我認爲要理解這個方法必須結合現實世界的發展規律,比如說從人類歷史發展的長河可以窺得這個社會已經進化出解決人類各種問題的方方面面的服務機構,各種不同的機構內又再次按照不同的責任進行部門劃分。由此可以得出面向對象編程就是"面向責任"編程或者說"面向服務"編程。
        "面向對象"最重要的應該在於我們要正確地理解"抽象"的概念。這個詞本身就難於解釋,我想應該可以這樣理解,也就是說面向某種服務我們是否能總結出這方面服務所呈現出的特性,因此我認爲"抽象"就等於"總結"。如果拿人類社會做比喻,一個國家算是一個服務方面的話,那麼中國的最高最高抽象應該是國務院,直至最高層應該當屬聯合國了,再往上面是什麼?這是一個非常難以回答的問題,也許最高層的抽象應該當屬"陰陽"了。另外,這也是我崇拜古人的原因,他們早在千年之前就抽象出了世界由"陰陽"組成。
        作爲一個軟件架構人員,面對一個複雜的系統應該怎樣進行設計呢?僅發表一些我的拙見,一個軟件系統先進行框架設計,這個框架要根據我們所解決的問題才能確定。就好像一個國家要進行機構的層次劃分一樣,有最高和最低職能機構。有了框架的分層設計,此時安排哪些服務應該對應於哪一層。然後針對每一層部署服務間的關係。就好像"N層系統結構"應該是在模擬當今人類社會複雜的社會分工一樣。
        要理解面向對象設計,我覺着可以適當去讀一些歷史,兵法,建築類書籍,從這些書籍裏面細心去體會,應該能夠發現很多和軟件設計關聯的東西,關鍵在於去理解它的內涵,或者說是它的核心思想,更或是"抽象"。
        其實C++中的模板就是在類的概念上進行更高層次的抽象。MFC的設計採用了面向對象思想,當然也包括ATL,OWL,VCL。它們都對服務進行了很好的抽象,或者說是對某種組織結構的抽象,我將它理解爲軟件的"思想"(框架)級別的抽象。思想是人類的靈魂,對思想進行抽象應是最高級別了。面嚮對象語言的出現就是希望在"無形中表現有形世界"。
         "道生一,一生二,二生三,三生萬物",萬物還是由道組成。

發佈了26 篇原創文章 · 獲贊 3 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章