談對象~

寫本文的目的,是爲了幫助初學者瞭解類和對象~ 歡迎指正與交流~

    有人說:“類是爲了增加代碼的可重用性、可構建性而出現的~”
    有人說:“類的概念來自於人們認識自然、認識社會的過程。”
    有人說:“類是解決過多的IF、CASE與代碼組裝而出現的~”
    很少程序員有興趣瞭解對象與類的起源~類和對象的說法也是各種各樣,並都好象有其道理~

    ===========================

    其實,類和對象的靈感與概念源於中國古代建築結構~並不段演化而來~

    某天一鬼佬到中國溜達溜達,發現中國古建築非常的精妙,並寫了一些建築方面的書,後來被應用在工程學、管理學、計算機技術等方面~

    擇一段中國古代建築結構的一段相關資料:


    中國古建築以木材、磚瓦爲主要建築材料,以木構架結構爲主要的結構方式,此結構方式,由立柱、橫樑、順檁等主要構件建造而成,各個構件之間的結點以榫卯相吻合,構成富有彈性的框架。中國古代木構架有擡樑、穿鬥、井榦三種不同的結構方式……

    由此可見,中國古代建築,把重用、重構和組裝表現得淋漓盡致~框架的概念,幾千年前的東西了~

    那這些又如何與計算機語言掛上鉤的呢?我是這樣理解的~

    重用:每一個構件都可以批量生產。也就是用模具生產。鬼佬把這些構件叫做Object,把這些模具叫作Class,其實啊,Object譯成“對象”,我到現在還不太理解,香港特區和臺灣省,譯成“物件”其實是比較合適,就是一個物體,一個東西嘛,對象還以爲結婚了呢,呵呵,說多了~
    重用在程序設計中涉及到類、它的實例化和繼承~這些都是代碼重用的主要方式~
類實例化後就是對象了,這個過程就好比是模具(類)生產(Concreate)出來的物件(Object,也就是一樣東西)。類與對象這樣理解是否好理解多了。

    繼承,其實就是在一個模具(Class)的基礎上,加點什麼,以達到增強功能、改變接口/連接方法等目的。用它“繼承”(其實用“擴展”比較合適)出來的模具(類),功能上與原來的被改造的模具(父類,其實這沒有血源關係)基本一致,只是功能有所加強、接口/參數有所改變。有些朋友,學的時候被父類和子類搞蒙了,兒子爲什麼生下來就有父親的功能?呵呵~

    組裝:就是,構件與構件間都是以榫卯相吻合~這就是接口(Interface)和方法(Method)。通過N件構件的相互合作(調用),組合成一個具有更大功能的構件,這過程就是不同的對象相互合作,產生一定功能的組件(Component)。


    重構:當兩個構件之間,接口/方法對不上怎麼辦,可以用一個“中間件”過渡一下~或是把連接的方法(參數)改掉一下等。如一個方形接口和一個圓形接口間的連接,可以把小的接口套一個別的什麼,讓它們吻合~

. 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章