日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

面向?qū)ο蟮谋举|(zhì)是什么?

 昵稱10504424 2013-02-20
什么是面向?qū)ο蟮谋举|(zhì)呢?

 

  萬物皆對象?No
  抽象?No
  復(fù)用?No

 

  那到底是什么呢?

 

  萬物皆對象。問了幾位網(wǎng)友,這是答復(fù)之一。看到了某個事物就來一個class?顯然沒有那么簡單。至少也要抽象一下呀。

 

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

 

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

 

  哎,說道復(fù)用我就比較郁悶。我是從面向過程學(xué)過來的,經(jīng)過漫長艱苦的學(xué)習(xí),現(xiàn)在還沒有完全轉(zhuǎn)到面向?qū)ο?。好像跑題了。

 

  面向過程里就解決了復(fù)用的問題,定義一個過程(過程、函數(shù))就可以達到復(fù)用的目的。別人有的,你也有,那不算什么優(yōu)勢。別人沒有的你有,那就是優(yōu)勢了。既然面向過程已經(jīng)可以服用了,那么在面向?qū)ο罄锩嬉舱剰?fù)用,那還有什么優(yōu)勢呢?

 

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

 

  我覺得面向?qū)ο笫怯忻嫦蜻^程“進化”過來的,但是有人說面向?qū)ο笫侵苯印氨摹背鰜淼模还芩窃趺闯鰜淼牧?,總之他是很好的解決了“管理復(fù)用”的問題。

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

 

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

 

 

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

 

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

 

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

 

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

 

  面向?qū)ο蟮母鞣N特點都是為了“管理復(fù)用”,所以我覺得面向?qū)ο蟮谋举|(zhì)就是“管理復(fù)用”。至于對象只是一種“表象”。

 

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

 

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多