黑子的程序員生涯

          努力保持編程中美好的感覺

          歷史上編程方法的發展

          1.歷史上出現的編程方法
          ? 1)結構化編程
          ??? 程序應該按自上而下的順序執行,不會做隨便跳轉。主要為了提高可讀性(特別是控制結構的),可自上而下的閱讀代碼,并且執行的順序也大體是這樣的。
          ??? 它的三個組成部分:順序Sequence,選擇selection,循環(或迭代)repetition (or iteration)。任何控制結構都可以用這三個部分組成。
          ??? 需要小心使用其他方式如:break,continue,return,throw-catch.
          ? 2)模塊化編程
          ??? 將邏輯相關的數據和函數放在一個模塊中。
          ??? VB中的Module就是這個思想的應用。
          ??? 它沒有多個實例的概念,相當于面向對象中的僅包含靜態方法和靜態變量的類。不需要實例化即可直接調用方法,只存在一個"實例"。
          ? 3)面向對象編程
          ??? 主要特點:封裝(Encapsulation),繼承(Inheritance),多態(Polymorphism)。
          ??? 封裝:將邏輯相關的數據和方法(函數)放在一個類中。跟模塊化編程做的一致。
          ??? 繼承:將內容或接口重用,并實現類型的多態。
          ??? 多態:不同的語義環境下,同一名稱可以有多種不同的實現。
          ? 具體表現為兩類:
          ? 同名方法不同內容,實現方式:使用重載(overload),當然方法的參數是不同的;
          ? 同名類型不同內容,實現方式:使用覆蓋(override)或實現(implement)。允許使用同一接口調用不同類的的實例對象。

          2.各種方法的目標
          ? 結構化編程。重點是是控制結構,可看作是基本程序語句(無子程序)的結構;
          ? 子程序化編程。似乎沒有相關的歷史潮流,但我認為加入認為的加入它會使整個方法的發展過程更加完整。也許這個大家都認為是當然的了?子程序(或過程、函數、方法)是模塊化、面向對象編程的最重要的基石。
          ? 模塊化編程。重點是將數據和子程序邏輯相關的組合;
          ? 面向對象編程。在模塊化的基礎上重點加入了模塊之間的關系。這里的模塊已演化為類。
          3.方法體系
          ? 上述幾種編程方法可以歸為一類,屬于一個方法體系,其重點在于編程本身,力圖有效管理并降低程序邏輯的復雜性。
          ? 隨其發展,管理的代碼單元越來越大,越來越復雜,其方式也越來越接近日常的思維。
          ? 其輔助技術或方法有編輯器、調試器、UML、軟件工程等。
          ? 我認為此體系中新的方法還未出現。現在流行的方法中:AOP面向方面編程,僅是此體系有益的補充;SOA面向服務架構,重點在于用統一的方式調用,而不依賴于底層技術,是組件化的一種形式,這不是這一類的主線方向。
          ?

          4.總結:
          ????? 以往的編程方法和原則在現代的方法中得到了保留和發展,這對新手是一個挑戰,不循序漸進的學習這些技術,想要短期學會現代方法(如:面向對象編程)是困難的。
          ????? 記住這些編程方法的主旨是很有好處的。
          ????? 新的編程方法必將是歷史方法的繼承和發展,所以學好這些舊的方法非常重要。
          ????? 掌握這些在各種層出不窮的新語言和新工具中不變的精華,或許,你可以不再那么疲于追趕新的技術潮流。

          posted on 2006-06-12 15:38 黑子 閱讀(1416) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 永济市| 长海县| 西乌| 北辰区| 镇安县| 三门县| 五峰| 丹江口市| 寿阳县| 西畴县| 资溪县| 乐山市| 沙湾县| 建湖县| 临高县| 玉林市| 阳谷县| 大方县| 宣汉县| 中方县| 漳平市| 北辰区| 元朗区| 秦安县| 云梦县| 肇东市| 历史| 吴旗县| 长乐市| 荃湾区| 云梦县| 金塔县| 辉县市| 太白县| 宿迁市| 桂林市| 城步| 甘谷县| 赤城县| 盐山县| 宣化县|