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