1、 什么是編程模型
程序是問題求解過程的表達,表達求解過程的語言統稱為編程語言。
求解過程就是邏輯,就是順序、條件、循環三種形式,因此程序就是用特定的語言表示的邏輯,程序是形式,邏輯是內容。
模型是對事物共性的抽象,編程模型就是對編程的共性的抽象。
什么是編程的共性呢?最重要的共性就是:程序設計時,代碼的抽象方式、組織方式或復用方式。
編程技術與編程模型有時並不加以區別,例如面向對象的編程,兩種含義都有。但深究的話,還是有一定的區別:前者更接近具體的語言和工具,后者更接近方法與思想。
面向過程編程是以功能分解為核心,而面向對象編程以概念抽象為核心,兩者在認識論方面有着更深刻的不同。由此導致了面向過程編程一條指令最大能操作一個過程,而面向對象編程一條指令最大能操作一個對象。
編程模型不考慮最小的操作單元。因為有的語言最小可操作到比特,與機器指令的抽象級別是一個層次,但也許它是面象對象的編程模型。
拿手搞裝修的民工打比喻:最低級的活是篩砂子,這是用匯編語言編程;進步一點的是搬磚頭,這是高級語言編程;再高級一點就是裝門、窗戶,最高級的大約是安裝整體廚櫃之類的角色,這是面向對象編程。不同的級別的人,實質上就是在不同的“模型”上工作。
2 抽象與復用
編程模型中,指令的抽象程度與復用程度密切相關:
1) 抽象是手段,復用是目標;
2) 抽象到什么程度,才能復用到什么程度;
從結果出看,編程模型其實就是代碼的復用模型。
3 相關概念
與.NET、Eclipse等是編程工具或開發平台,是具體的、實例化的。而編程模型是抽象的、思想性的,兩者不能混為一淡。
編程模型處於方法或思想性的層面,在很多情況下,也可稱為編程方法、編程方式、編程模式或編程技術。之所以用編程模型,是因為它能兼顧了技術與思想的兩種含義,能更好的體現本文要表達的意思。
編程模型與體系架構中的C/S模式及3層模型等概念也是有區別的。前者是針程序設計的模型,而后者指體系架構的模型,含義有很大的不同。
(待續)