六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

面對對象的思考

[摘要]在比較老一些的討論面對對象方法的書籍中,都把繼承看成了最為關鍵的部分。一般認為,面對對象的方法中最為核心的部分就是繼承,因為從繼承的角度思考問題,是和結構化設計最為明顯的區別。如果,對象都沒有繼承,那么對象和傳統的模塊的概念沒有太多的差別。我并不是要把這兩種方法對立起來,我只是認為面對對象的方法背...
在比較老一些的討論面對對象方法的書籍中,都把繼承看成了最為關鍵的部分。一般認為,面對對象的方法中最為核心的部分就是繼承,因為從繼承的角度思考問題,是和結構化設計最為明顯的區別。如果,對象都沒有繼承,那么對象和傳統的模塊的概念沒有太多的差別。我并不是要把這兩種方法對立起來,我只是認為面對對象的方法背后的思想是應該和傳統結構化的方法有所區別的。
在結構化的方法中,我們首先需要考慮的是整個軟件系統的功能,然后按照一些基本的模塊劃分的原則,比如高內聚,松耦合,還有模塊的扇入扇出數等等,把整個軟件的功能分解為各個模塊的子功能。當然,模塊一般認為是黑箱的。在設計階段需要定義的是各個模塊的調用規則,我不想說是接口,接口我想用在下面另外一個地方。在完成了所有的模塊的設計后,拼裝好,就應該能夠實現整個軟件的功能了。當然這屬于自頂向下的設計。這種思考的方式應該說是很自然的,就像搭積木一樣,也和我們平時的思維習慣相一致,他不是探究為什么會有這樣的功能,而是思考我如何實現這樣的功能,當然我們的目標就是如何實現,但是他的思考方式是很直接的。這種方式有很大的局限性,一是需求分析總不是很明確,也永遠不可能很明確,這就需要經常的變化原來的軟件功能構想,這帶來了麻煩,因為需要修改各個模塊的設計,有時候甚至是致命的,會造成原來的設計被完全推翻。這需要一個很有經驗的設計師,他必須了解這個軟件適用行業的業務,必須了解未來的軟件發展趨勢,并且要能夠預測用戶可能的需求變化,這種要求是相當高的,一個設計師的水平就往往決定了一個軟件的生存時間,就算他有一個很好的團隊,他的拙劣設計仍然會使這個軟件成為曇花一現。二是結構化設計帶來的漂亮的文檔,仍然不能為以后的維護工作帶來相當的好處,大多數的維護工作都是由于用戶的需求發生變化引起的,漂亮清晰的文檔雖然能給后來的維護者很大的幫助,卻仍然不能減少他們的工作量,維護者在改動的時候仍然需要全面準確的理解原來設計者的意圖,否則就算有好的文檔,維護工作仍然會帶來大量的錯誤,特別是在用戶需求發生大的變化的時候。在最近有了一些變化,我會在后面討論。
面對對象的方法在開始的時候,第一個工作就是識別對象,識別在問題域出現的對象,最經典方式是尋找需求說明書中出現的名詞,這是有道理的,語言是思維的外殼,這些名詞在我們頭腦中的概念決定了他們之間的聯系,這種方式是偷懶的也是最自然的方式。第二步是尋找這些已經確定了的對象之間的共性,當然我們尋找的對象集應該是能夠涵蓋整個問題的了。尋找共性就是確定它們的共同祖先,在這個過程中設計師能夠對問題有進一步的清晰的了解。第三步就是確定問題中各個對象之間的關系,也就是它們之間的消息傳遞,這不是指Windows中窗口的消息,呵呵。這個過程是苦難的,因為要確定各個對象之間的關系,也就是要更加精確的描述原來的問題,但是也是靈活的,就算理解出現了偏差,仍然是可以愉快的加以改正,因為我們是在理解對象,而不是分解功能,注意,我強調的是理解,而不是設計。這時候我們就可以提交我們的初步成果給客戶使用了,有問題的時候加以修改,這種修改不會很困難,因為我們不是基于功能分解,而是基于理解問題域中的對象概念。我們不太會把所有的對象都理解錯誤,理解錯的只是一個或者很少的一部分對象。我認為面對對象方法的實質在于迫使設計師從為什么的角度來設計軟件,而不是很直接的怎么做,在這種理解過程中,很自然的形成了我們的設計方案。在這個機制中,能夠起到關鍵性作用正是繼承,他是連接為什么到怎么做的橋梁,他自然和不自覺的就把設計師對問題的理解變成了解決問題的方案。之所以會這樣,那是因為,在現實世界中我們早就形成了解決這個問題的方法,我們需要的只是把這個解決方案轉換成計算機的描述。我們在頭腦中的各種概念就是我們解決現實世界的各種問題留下的痕跡,他為我們解決類似的問題提供了參考,請注意到一個事實,科學研究就是想知道是什么和為什么,而不是要干什么,但是我們知道了是什么和為什么以后,我們就會知道要干什么。舉一個不恰當的例子,有一個工人很不滿他的工資待遇,于是有一個人跑來跟他說,你這么少的工資待遇是因為我們國家還很困難,社會還在轉形,不可避免的要有一部分人作出犧牲,于是這個工人就很滿意了。為什么這個工人會滿意?他原來要尋找的是解決他不滿工資待遇的途徑。其實,國家的概念在他的腦子中是神圣的,換一句話說,就是一種難以抗拒的力量,這是他的成長道路上教訓形成的,當他不尊重國家的時候,老師會罰站,然后那個人的話,就演變成,你現在無法抗拒國家的力量,你現在這種狀況是國家的意志,呵呵,這個工人知道怎么做了,就是安于現狀。當然他不這樣認為,他的概念是我是崇高的。這有點像宗教哦,有點跑題了。不過的確,理解一個問題,實際上就是尋找解決問題的途徑。
在最近的一些日子里,傳統的結構化的方法發生了變化,他開始吸收面對對象的概念,用于解決他的傳統問題,就是修改模塊困難的問題。一方面,他形成一些經典的設計模式,幫助提高設計師在設計同類問題時的能力,如同建筑中的經典設計結構,不過,這種幫助是有限的,我們很少見到一樣的建筑物吧!另一方面,它使用接口的概念,意圖就是,使模塊的實現和描述進一步的分離,這種好處在于,可以在一開始就設計靈活性很高的接口,使用模塊是通過接口,這樣做實際上把總體設計的負擔進一步減輕,他把責任推給了接口實現者,因為在結構化的方法中靈活和精確始終是矛盾的。很多人把這種變化看成是面對對象方法的延伸,而我始終堅持認為:面對對象的方法是尋找是什么和為什么的過程,結構化的方法永遠是尋找做什么和怎么做的過程。


主站蜘蛛池模板: 欧洲美女高清一级毛片 | 色播五月激情 | 四虎免费久久影院 | 人成精品 | 亚洲最新永久观看在线 | 色月丁香| 日本亚洲中午字幕乱码 | 四房色播开心网 | 日韩综合区| 日本后进式猛烈xx00动态图 | 午夜网站在线观看 | 人人鲁免费播放视频人人香蕉 | 欧美一区色 | 天天看片天天a免费观看 | 日本高清视频一区二区 | 五月六月婷婷 | 天干夜天天夜天干天 | 天美传媒一区二区三区 | 青青草原网址 | 色偷偷91综合久久噜噜app | 青青视频网站 | 深夜 免费 视频 | 亚洲福利一区二区精品秒拍 | 天天看片天天操 | 日韩在线国产精品 | 我看黄色一级片 | 青春草在线视频免费 | 日本一区不卡在线观看 | 色婷婷5月精品久久久久 | 色综合天天综久久久噜噜噜久久〔 | 青春草影院 | 欧美在线一级视频 | 日韩欧美一区二区在线观看 | 亚洲欧美日韩高清一区二区一 | 亚洲天堂视频在线观看免费 | 青草伊人网 | 四虎国产精品一区二区 | 日日摸人人看97人人澡 | 亚洲专区路线一路线二天美 | 日本www色视频成人免费网站 | 无人区国产大片 |