乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      面向對象的本質是什么?

       昵稱10504424 2013-02-20
      什么是面向對象的本質呢?

       

        萬物皆對象?No
        抽象?No
        復用?No

       

        那到底是什么呢?

       

        萬物皆對象。問了幾位網友,這是答復之一??吹搅四硞€事物就來一個class?顯然沒有那么簡單。至少也要抽象一下呀。

       

        抽象。比如一些文章里說,可以根據(jù)貓貓、狗狗抽象出來一個Animal出來,然后定義Cat,繼承Animal,在定義Dog,也是繼承Animal。抽象就是本質了嗎?那么為什么要抽象,而不直接定義Cat、Dog呢?這么“折騰”一下的目的是什么呢?或者說有什么好處?

       

        復用。Cat可以復用Animal里的屬性、方法等,Dog也可以復用Animal里的屬性方法。這樣看來復用好像就是本質了。

       

        哎,說道復用我就比較郁悶。我是從面向過程學過來的,經過漫長艱苦的學習,現(xiàn)在還沒有完全轉到面向對象。好像跑題了。

       

        面向過程里就解決了復用的問題,定義一個過程(過程、函數(shù))就可以達到復用的目的。別人有的,你也有,那不算什么優(yōu)勢。別人沒有的你有,那就是優(yōu)勢了。既然面向過程已經可以服用了,那么在面向對象里面也談復用,那還有什么優(yōu)勢呢?

       

        面向過程可以達到復用的目的,但是有一個致命的缺點:混亂。定義出來的函數(shù)沒有層次,沒有管理。假設一個項目里有一萬個函數(shù),那么這些個函數(shù)就會雜亂無章的出現(xiàn)。要管理的話也只能按照頁面、窗體等來劃分??傊?,想要管理好面向過程里的眾多函數(shù)是一件頭痛的事情。

       

        我覺得面向對象是有面向過程“進化”過來的,但是有人說面向對象是直接“蹦”出來的,不管他是怎么出來的了,總之他是很好的解決了“管理復用”的問題。

      封裝(Class):把相關的屬性、方法、事件放在一起,化零為整,統(tǒng)一管理。該隱藏的隱藏,該暴露的暴露。這是管理的第一步。

       

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

       

       

        繼承:都封裝起來了,那么就失去了靈活性。如何保證靈活性呢?繼承(還有函數(shù)重載等)。也就是多態(tài)了。相同的放在父類,不同的放在子類。這是我的理解,當然你可以說這種理解是錯誤的。Class就好比一個大的家族,父類是根基,子類各有各的特點。正所謂:龍生九子各有不同。

       

        子類可以復用父類里的屬性、方法、事件,這就是一種復用的管理方法。

       

        組合(合成):父類、子類、抽象基類,這些都是一個家族里的關系,那么兩個家族有如何呢?組合。Has A,一個類里包含另一個類,通過這種方式來實現(xiàn)復用。這又是復用的一種管理方法。

       

        接口:抽象基類是一個很好用的東東,比如DbCommand,用過的兄弟們都會體會到他的方便吧。但是他只能管同一個家族里的,另一個家族的就不行了。如果哪個數(shù)據(jù)庫(比如PostgreSQL)沒有繼承DbCommand怎么辦呢?接口就可以跨越不同的家族。當然接口也有一個致命的弱點,本身不能有任何的實現(xiàn)部分,他只能定義。

       

        面向對象的各種特點都是為了“管理復用”,所以我覺得面向對象的本質就是“管理復用”。至于對象只是一種“表象”。

       

        在多說幾句,我是不喜歡被所謂的“對象”所束縛的。以前問過,SQLHelp為什么要寫成靜態(tài)函數(shù)的形式,答曰:數(shù)據(jù)訪問是一個對象嗎?怎么實例化呢?

       

        我覺得數(shù)據(jù)庫就是一個對象,數(shù)據(jù)訪問也是一個對象。數(shù)據(jù)訪問就是數(shù)據(jù)庫的一個“代言人”。我的數(shù)據(jù)訪問函數(shù)庫就是以DbCommand為中心人物,用起來非常的方便。

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多