Multi-paradigm (1)

Multi-paradigm:

1. 面向對象編程(Object-oriented),提高軟件的重用性、靈活性和擴展性;

2. 函數式編程(Functional),以數學函數爲編程語言建模的核心的編程範式;

3. 泛型編程,提供了更高層級的抽象;

 

1. 面向對象編程:

面向對象編程將對象作爲程序的基本單元,將程序和數據封裝其中,以提高軟件的重用性、靈活性和擴展性。

面向對象編程的核心概念:

  • 多態,指由繼承而產生的相關的不同的類,其對象對同一消息會做出不同的響應;

  • 繼承,在某種情況下,一個類會有“子類”。子類比原本的類(稱爲父類)要更加具體化;

  • 封裝,面向對象程序設計隱藏了某一方法的具體執行步驟,取而代之的是通過消息傳遞機制傳送消息給它;

以對象構建程序的基本單元的面向對象編程語言中,多態提供了更高的抽象能力,使得我們可以設計出更通用的程序,繼承提供了一種複用代碼的方法,封裝提供一種使用其他代碼更爲便捷安全的機制。

2. 函數式編程:

函數式編程是一種以數學函數爲編程語言建模的核心的編程範式,它將計算機運算視爲數學函數計算,並且避免使用程序狀態以及可變對象。

函數式編程思想主要有兩點:

  • 以函數爲編程語言建模的核心;

  • 避免狀態和可變性。

函數是函數式編程的基石,函數式編程語言的代碼就是由一個個函數的組合而成的,編寫函數式語言的過程就是設計函數,大規模程序由成千上萬的函數組成,爲了有效的組合這些函數,函數式編程語言,會盡量避免狀態,避免可變對象,沒有可變的狀態,就使得函數式語言中的函數變爲了純函數,純函數更容易模塊化,更容易理解,對於複用是友好的。

函數式編程語言也產生了一些有用的編程工具:

  • 一級函數,閉包;

  • 柯里化函數;

  • 惰性求值。

函數編程語言有其優秀的地方,也許將來會成爲一個重要的編程範式。但是,函數式編程語言的重要性可能更多會體現在影響其他編程語言的發展上。未來,可能很難出現一門主要以函數式編程範式設計的編程語言成爲主流的編程語言。如同Java這樣的以單一編程範式(面向對象)構建,而成爲主流的編程語言的機會應該不多了。而如同Haskell這樣追求純粹的函數式編程語言,更多的可能只是一個偏學術的語言實驗。

再重複一次上一節的提到理由,這個世界是如此得豐富多彩,使用單一模式爲世界建模並不會成功。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章