使用面向對象工具進行着面向過程的開發


    在傳統方法學里有兩大分支 ---- 面向過程方法學和面向對象方法學。隨着軟件技術的發展,面向對象方法學的好外日益彰顯,支持面向對象開發的開發工具也如雨后春筍般的涌向世面,C++、C#、Java、Delphi等等多不勝數。好多程序員朋友也跟隨潮流,學習和使用這些開發工具(包括曾經的我)。工具換了,但開發思想卻沒有更換,或者說是沒有發生太大的變化,只不過是使用面向對象的工具進行着面向過程的開發工作。追其原因之根本,遂發現主要是沒能夠很好的了解和掌握面向對象方法學之精髓。

    面向對象方法學的出發點和基本原則,是盡可能模擬人類習慣的思維方式,使開發軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程,也就是使描述問題的問題空間與實現解法的解空間在結構上盡可能一致。其包括四個要點:

  1. 認為客觀世界是由各種對象組成的,任何事物都是對象,復雜的對象可以由比較簡單的對象以某種方式組合而成。按照這種觀點,可以認為整個世界就是一個最復雜的對象。因此,面向對象的軟件系統是由對象組成,軟件中的任何元素都是對象,復雜的軟件對象由較簡單的對象組合而成。由此可見,面向對象方法用對象取代了傳統方法的功能分解。
  2. 把所有對象都划分成各種對象類,每個對象類都定義了一組數據和一組施加在該數據上的方法。數據用於表示對象的靜態屬性,是對象的狀態信息。因此沒當創建一個對象實例時,就按照類中對數據的定義為這個新生成的對象實例生成一組專用的數據,以描述該實例的獨特屬性值。而方法是允許施加在該對象上的操作,是該類所有對象所共享的,並不需要為每個對象實例都復制操作代碼。
  3. 按照派生類與基類的關系,把若干對象類組成一個有層次結構的系統。在這種層次結構中,通常下層的派生類有着和上層的基類相同的特性(數據和方法),這就是繼承。但是如果在派生類中對某些特性又做了重新描述,則在派生類中的這些特性以新的描述為准,也就是說,低層的特性將屏蔽高層的同名特性。
  4. 對象彼此間僅通過傳遞消息互相聯系。對象與傳統數據有本質上的區別,它不是被動的等待外界對它施加操作,相反,它是進行處理的主體,必須發消息請求它的某個操作,處理它的私有數據,而不能從外界直接對它的私有數據進行操作。這就是“封裝性”。

    面向對象方法學的精髓並非是三言兩語能夠說清楚的,還需要我們在平常的工作中慢慢體會,慢慢領悟。只有很好的了解和掌握了面向對象方法學,才能夠做到真正的面向對象分析和面向對象設計,從而寫出真正意義上的面向對象的軟件。

    以上是個人拙見,還望斧正。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com