亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

再談面向對象

2019-11-18 12:07:16
字體:
來源:轉載
供稿:網友

  談到面向對象,這方面的文章非常多。但是,明確地給出對象的定義或說明對象的定義的非常少——至少我現在還沒有發現。其初,“面向對象”是專指在程序設計中采用封裝、繼續、抽象等設計方法??墒?,這個定義顯然不能再適合現在情況。面向對象的思想已經涉及到軟件開發的各個方面。如,面向對象的分析(OOA,Object Oriented Analysis),面向對象的設計(OOD,Object Oriented Design)、以及我們經常說的面向對象的編程實現(OOP,Object Oriented PRogramming)。許多有關面向對象的文章都只是講述在面向對象的開發中所需要注重的問題或所采用的比較好的設計方法??催@些文章只有真正懂得什么是對象,什么是面向對象,才能最大程度地對自己有所裨益。這一點,恐怕對初學者甚至是從事相關工作多年的人員也會對它們的概念模糊不清。下面我從一般的概念出發,再引申到軟件開發領域中所涉及到的對象的概念。
  
  上一篇文章中我曾舉過一個樹的例子來說明對象的概念。這里我仍然利用它對對象的概念做闡述?!皩ο蟆币辉~,英文為“Object”,德語為“Sachen”,都可以譯做“物體”。其實所有的物體都可以作為我們的對象——只要我們注重并對它思考了。一個人從生下來到進行第一次的戶外活動,他將接觸到許許多多的新鮮事物,他將睜大眼睛好奇地看著這生疏的一切。也許對他來說,那些高大的東西,有干,有枝,有葉——雖然那時他并不知道這些——其映象已經深刻地印在了他的腦海中。此時對他來說,樹并不是對象,因為在他的腦子當中只有樹的映象,而沒有對樹的精神上的意向。當他再大一點時,也許他會想著爬到樹上去玩一會兒——但此時樹也還不是他的對象。存在的對象只是他自己——他想讓自己去做某件事。長大以后,也許他他成了一名木匠——就像我們成了程序員,用他的鋸子、斧頭把一棵樹砍下來做成一張桌子——就像我們利用java 、C/C++語言開發出一套數據庫系統。在這里,樹是木匠的對象,而數據庫系統是程序員的對象。于是,我在這里給對象下一個定義:對象是人腦中的物質意識和精神意識。通俗地講,就是事物在人腦中的映象和人腦對事物的意向。之所以要在這里強調“事物”,是我要說明這里所說的“物質”并不是物理學中的物質,思維活動、事物間的關系我們也稱為是物質的。
  
  真正要在較深的層面上討論什么是對象是很復雜的,因為這要涉及到精神意識本質的問題,遠遠超出了我們要討論的范圍。我們不要討論什么高深的問題,就以實用為主。我就利用這個概念來舉一個簡單的例子。木匠前面有一張桌子。他可能要面臨兩個問題:一是給桌子添加一些部件如抽屜,這樣桌子就可以放更多的東西;二是裝飾一下桌子,使得它更美觀。在這里,桌子是他的對象——他對桌子進行思考了,這使得他對桌子的意向性也明顯地顯露出來。我們甚至可以把改造桌子稱為“面向對象的改造”,因為那不是隨意的改造。這一點我在隨后對面向對象思想的說明中提到為什么說是“不是隨意的改造”??紤]一下“面向對象”,可以知道它是一個動賓關系的短語。動詞“面向”表面,這個短語含有“如何去做”的意思,這可以說是涉及到了方法論的范疇了。這也給我們提供了一個重要的信息:“面向對象的做......”不僅牽涉到什么是對象的問題,還牽涉到如何去做的問題。木匠如何去做他的桌子,我們不必擔心:他肯定能做好的——假如他是一個優秀的木匠的話。他有著豐富的經驗,他有一套自己的方法,他知道如何去做。也許在做桌子之初就已經做了良好的設計以為以后的“升級”作預備。這就像一個經驗豐富的程序員:他知道怎么設計才能讓自己的程序結構清楚、易懂,輕易排錯也易于維護。
  
  有一點要注重的是,對象不是實體,它可以脫離實體而存在。這是因為,對象只不過是人腦思維活動的產物;我們可以用某種方式如自然語言、圖畫等將它表示出來,就像我們在軟件開發中所說的對象用類(程序當中)或系統結構圖(如流程圖,層次圖,HipO圖等)來描述一樣。
  
  于是,我們就可以對象我們一般在軟件開發領域里所討論的對象下個定義了:對象由一個數據集以及對該數據集的操作組成。這個定義適合程序語言中的類,也適合對整個系統而言。也許大家會對這個定義覺得很熟悉:這不是程序或進程的定義嗎?注重,這里的對象是有“自我意識”的,也就是說,它是有自己的行為的。而“進程”指的是一系列的二進制流的集合,是一次運行活動。在程序中,我們用類來描述對象,而對整個的系統,我們用系統圖來描述。在這里,系統也是我們的對象。數據集就像事物在我們大腦中的映像,對數據集的操作就如同我們對事物的意向。假如我們仔細考察系統的各個部分,那么,它們也可以看作是對象?!懊嫦驅ο蟮腦X”就是要求我們如何合理地分配對象之間的層次結構,使得它清楚明了,在保持效率的同時還便于排錯、維護。我們有一個專業名詞來表示已經定型、得到大家認可的軟件方法,那就我們常說的模式。各行各業都會有它自己的一般的方法模式,如建筑業有建筑模式,軟件開發有其開發模式。我想,當初愛因斯坦之所以做出幾個丑陋的凳子,就是因為他不懂得凳子的設計模式吧。這就如同好多編程初學者,稍微大一點的程序就會寫出雜亂不堪的、除了自己誰也看不懂的代碼,也許過了幾天連自己都看不懂了。
  
  在軟件開發過程當中,系統(我們面對的終極對象)的分析、設計才是最重要的。而這兩方面是緊密結合在一起的。這兩步沒有做好,下面的編碼實現工作很難玩成,可以說是寸步難行。我曾經在一家軟件公司(說是公司,其實加上老板才只有六、七個人)做過一段時間。那時老板叫我們用Java做一個數據庫系統(圖書館治理系統),用來當招牌,以后也好對接項目有利。我以為他會先拿出一個設計圖讓我們看,不料他說現在就開始做。說實在的,那時我對這方面根本沒有經驗。我當時就對他說,你至少得把你設計的藍圖給我們看一看吧?他說沒有,他也不知道如何做,以前沒做過。還說我們邊做邊學習。我說那至少你應該先做一做系統分析吧。他說要是我有這能力還能在這里呆著?結果可想而知,我們在那里呆了幾天,這里瞧一瞧,那里看一看,又在機子上寫一寫,什么也沒做成。老板看見我們稍微有所松懈,就不斷地催促快做快做。后來我受不了,就一個人跑了。也不知道他們做成了沒有??梢哉f這是一個不成功的例子。就算是寫成了,沒有分析、設計的結果肯定也是很難維護的。這就象是請來的木匠,把一套家具打造得很不合理,看上去非常糟糕可能還很不實用。有誰會愿意用這樣的家具?程序包設計得不好,有誰能用得好?無論誰用起來都會很吃力。假如說一個項目沒有設計好,即使開發出來了,后來的維護工作別人怎么能接手?在我們中國軟件領域有這樣事情的例子很多。當然,產生這樣情況的原因很多,中國的體制、公司的實力也是一大方面。但是如何去做,有是一個范圍很寬的話題了。
  
  上面聊得多了。對象是一個比較廣泛的概念,在我們通常軟件領域里也是這樣。對象之間可以包含對象。對木匠來說,一套組合家具是一個對象,一件衣柜也是對象——全局和局部都要考慮。對他們來說,如何從整體到部分的設計出受人好評的家具,是需要豐富的經驗和良好的設計方法的。對我們來說也是這樣。除了要打下扎實的基本功,積累豐富的經驗,還要注重學習我們的前輩們給我們留下的東西,以及同行們的好的方法?,F在,有關面向對象的書籍、文章都很多,我們都應該去看看、去學習。
  
  全文說了這許多,只談了有關面向對象的概念。有幾位朋友來信問到如何劃分對象層次、結構對系統運行的重要性等,受篇幅所限,不能述及。還有可能有的朋友對對象的理解不是很合理,這里我談一下我的觀點。對象在系統運行時是有其生命期的。但是,在運行內對象自身的改變(如,動態地增加、縮減功能,數據集的變化等)不能看作是改變了對象。例如對于一個二叉樹,初始化時只有根節點,當然我們可以看作是一個節點對象,但一般我們是將它看成一個整體的二叉數對象。當樹生成之后,它還是那個對象,而不能把它看成是另外一個對象了。假如你那樣理解的話,就把對象的各個運行時期分離開來了,這就與對象的概念有曲解了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久av福利软件| 精品久久久久久中文字幕| 亚洲第一网站男人都懂| 懂色av影视一区二区三区| 国产免费观看久久黄| 亚洲精品一区二区久| 国产精品一区二区三区久久久| 国产精品夜间视频香蕉| 亚洲精品资源美女情侣酒店| 欧美日韩激情视频8区| 一二美女精品欧洲| 在线观看国产欧美| 欧美巨大黑人极品精男| 欧美小视频在线| 国产98色在线| xxxxx91麻豆| 欧美精品videosex性欧美| 91久久在线观看| 亚洲成人性视频| 亚洲大胆人体视频| 高清欧美一区二区三区| 人人爽久久涩噜噜噜网站| 久久综合国产精品台湾中文娱乐网| 国产精品九九九| 日本高清视频精品| 欧美一区二区影院| 日韩大胆人体377p| 久99久在线视频| www亚洲欧美| 亚洲黄色免费三级| 欧美激情欧美狂野欧美精品| 欧美日韩国产一区二区三区| 成人在线视频网站| 黄色精品在线看| 97碰碰碰免费色视频| 中文字幕日本欧美| 91精品久久久久| 日本精品视频在线播放| 91九色精品视频| 国产一区二区三区在线观看视频| 亚洲欧美视频在线| 亚洲四色影视在线观看| 国产精品久久电影观看| 91精品国产色综合| 亚洲精品国产精品国自产观看浪潮| 成人在线视频网站| 成人av色在线观看| 91福利视频网| 91精品啪在线观看麻豆免费| 永久免费毛片在线播放不卡| 亚洲有声小说3d| 97精品视频在线| 亚洲性视频网站| 国产精品免费小视频| 国产精品久久久久久久久久| 久久亚洲影音av资源网| 久久精品91久久久久久再现| 91精品国产99| 欧美人与性动交a欧美精品| 韩国国内大量揄拍精品视频| 亚洲福利精品在线| 97超级碰碰碰久久久| 久久天堂av综合合色| 日韩最新免费不卡| 中文字幕视频在线免费欧美日韩综合在线看| 久久久噜噜噜久久| 久久久久久12| www.亚洲成人| 国产噜噜噜噜噜久久久久久久久| 国产精品福利无圣光在线一区| 国产精品中文在线| 国产综合久久久久久| 亚洲女人天堂成人av在线| 国产精品99免视看9| 久久久久女教师免费一区| 国产aⅴ夜夜欢一区二区三区| 在线看国产精品| 国产精品国产福利国产秒拍| 亚洲欧美激情另类校园| 奇米四色中文综合久久| 日韩一区二区三区在线播放| 97在线日本国产| 色综合久久中文字幕综合网小说| 8050国产精品久久久久久| 国产丝袜一区二区三区免费视频| 欧美国产精品人人做人人爱| 超碰日本道色综合久久综合| 亚洲激情成人网| 国产69久久精品成人| 日韩精品视频免费专区在线播放| 综合激情国产一区| 欧美在线视频一二三| 日产日韩在线亚洲欧美| 高跟丝袜欧美一区| 国产精品成人aaaaa网站| 福利视频导航一区| 久久精品国产欧美激情| 青草成人免费视频| 国内精品一区二区三区四区| 亚洲欧洲日本专区| 久久九九免费视频| 在线视频一区二区| 日本高清不卡在线| 91精品国产综合久久久久久蜜臀| 久久人人爽人人爽爽久久| 亚洲国产精品高清久久久| 亚洲视频第一页| 欧美性猛交xxxx黑人| 96国产粉嫩美女| 久久频这里精品99香蕉| 日韩一区二区久久久| 国产精品主播视频| 亚洲精品久久7777777| 日韩欧美在线观看视频| 爽爽爽爽爽爽爽成人免费观看| 日本一区二区三区在线播放| 国产视频自拍一区| 日韩中文字幕不卡视频| 欧美日韩国产中文精品字幕自在自线| 伊人久久免费视频| 亚洲经典中文字幕| 日韩精品中文字| 日韩av影院在线观看| 国产欧美日韩免费| 亚洲成人免费网站| 欧美成人自拍视频| 欧美日韩精品国产| 成人欧美一区二区三区黑人| 日韩免费精品视频| 欧美性猛交xxxx免费看漫画| 91产国在线观看动作片喷水| 国产精品电影在线观看| 亚洲免费精彩视频| 国产欧美在线看| 亚洲激情国产精品| 欧美精品一区二区免费| 久久久久北条麻妃免费看| 久久精品久久久久| 欧美成人精品在线观看| 成人免费福利视频| 欧美专区在线播放| 日韩有码在线观看| 91牛牛免费视频| 国产成人亚洲综合91| 久久69精品久久久久久国产越南| 91av免费观看91av精品在线| 亚洲精品福利在线| 国产精品18久久久久久首页狼| 欧美性高潮在线| 亚洲中国色老太| 亚洲欧美在线免费观看| 欧美电影免费观看高清| 欧美精品情趣视频| 成人激情视频在线| 欧美激情久久久久| 国产日韩精品综合网站| 98午夜经典影视| 热久久免费国产视频| 日韩精品免费在线播放| 日韩精品免费看| 最近2019中文字幕mv免费看| 91亚洲精品在线| 日韩国产精品亚洲а∨天堂免| 欧美精品videos性欧美|