1. 程式人生 > >程式設計方式

程式設計方式

函數語言程式設計:

典型代表:lisp、Python

函數語言程式設計是種程式設計方式,它將電腦運算視為函式的計算。函式程式語言最重要的基礎是λ演算(lambda calculus),而且λ演算的函式可以接受函式當作輸入(引數)和輸出(返回值)。 [1]

和指令式程式設計相比,函數語言程式設計強調函式的計算比指令的執行重要。

和過程化程式設計相比,函數語言程式設計裡函式的計算可隨時呼叫。

python 不是一個完全意義上的函數語言程式設計語言,只是引用了 函數語言程式設計的風格 比如 map reduce filter 匿名函式
python 是允許使用變數的程式設計語言,由於函式內部的變數狀態不確定,同樣的輸入,可能得到不同的輸出,
 因此,這種函式是有副作用的,可能會修改外部引數或變數的值。以後學習程序,執行緒時函數語言程式設計就會引起改變外部變數的問題.

面向過程程式設計:

典型代表:C

面向過程”(Procedure Oriented)是一種以過程為中心的程式設計思想。這些都是以什麼正在發生為主要目標進行程式設計,不同於面向物件的是誰在受影響。與面向物件明顯的不同就是封裝、繼承、類。

面向過程就是汽車啟動是一個事件,汽車到站是另一個事件。在程式設計序的時候我們關心的是某一個事件。而不是汽車本身。我們分別對啟動和到站編寫程式。類似的還有修理等等。

優點:體系結構更加清晰

      簡化程式的複雜度

缺點:可擴充套件性及其的差

面向過程程式設計的應用場景是:不需要京城變化的軟體 如 linux 核心 httpd,git等

面向物件程式設計:

面向物件程式設計(Object Oriented Programming)作為一種新方法,其本質是以建立模型體現出來的抽象思維過程和麵向物件的方法。模型是用來反映現實世界中事物特徵的。任何一個模型都不可能反映客觀事物的一切具體特徵,只能對事物特徵和變化規律的一種抽象,且在它所涉及的範圍內更普遍、更集中、更深刻地描述客體的特徵。通過建立模型而達到的抽象是人們對客體認識的深化。

特點:

      物件之間互動的結果不能確定

      可擴充套件性強

      可控性差

應用場景:需求經常變化的   使用者層,網際網路應用,遊戲等