1 3 2 宣告式程式設計風格

2021-06-22 21:05:26 字數 1230 閱讀 9691

1.3.2 宣告式程式設計風格

用宣告式程式設計風格,我們表達的程式邏輯無需說明執行細節。這個描述聽起來有些耳熟,因為它十分類似於我們在 1.1 節中看到的函式式程式設計的定義。但宣告式程式設計是更為一般的概念,可以使用不同技術來實現;函式式程式設計只是實現這一目標的一種方法。我們看乙個演示,如何用函式語言編寫宣告性**。

我們寫程式,要以計算機所理解的詞彙,向它解釋我們的目標,在命令式語言中,這由命令組成。例如,我們可以新增新的命令「顯示客戶細節」,而告訴計算機應如何完成全部任務的整個程式就是一步一步的描述。比如,程式可以是這樣的,「從列表中取下乙個客戶,如果客戶生在活英國,顯示其詳細資訊。如果列表中有其他客戶,則轉到開始再繼續。」

注意隨著程式的增長,我們詞彙中的命令數目也越來越多,使詞彙難以使用。這時,出現了物件導向的程式設計,使問題變得簡單,因為它能更好地組織命令。我們將涉及客戶的所有命令與客戶實體(類)相關聯,澄清了描述,但程式仍是指定應該如何執行的命令序列。

函式式程式設計提供了完全不同的方式來擴充套件詞彙量。我們不能能夠新增新的基本(primitive)命令,而且能夠新增新的基本控制結構,說明如何把命令組織到一起建立程式。在命令式語言中,我們能夠把命令組合成序列,或通過使用有限數量的內建構造,如迴圈,但如果你看看典型的程式,你還會看到很多反覆使用的結構(recurring structures),這是組織命令的常用方法。事實上,這些反覆使用的結構有些很著名,成為設計模式的一部分。但在命令式語言中,我們仍需要一次次地鍵入相同結構的**。

在我們的示例中,可以看到一種模式,表達為「對於第二個命令返回真的所有客戶,執行第乙個命令。」使用這個基元[ 是哪乙個基元,好像沒有表達清楚?感覺這一段比較亂,一會兒函式式,一會兒命令式;一會兒宣告式,一會兒物件導向。中間好像有遺漏。],表達程式可以簡化成,「顯示在英國生活的每一位客戶的詳細資訊。」這句話中「在英國生活」是指第二個引數,「顯示客戶詳細資訊」是第乙個引數。[ 怎麼又從命令變成了引數?]

我們來比較一下描述同樣問題的兩個句子:

■從列表中取下乙個客戶。如果客戶生活在英國,顯示其詳細資訊。如果列表中有其他客戶,則轉到開始繼續。

■顯示在英國生活的每一位客戶的詳細資訊。

就像早前關於製作咖啡模擬一樣,第一句描述究竟如何實現目標,第二句描述想完成什麼。

提示這是命令式和宣告式程式設計風格的本質區別。當然,你也會同意第二句更具可讀性,並更好地反映程式的目標。

至止,我們一直在使用模擬,但在本章後面,我們會看到如何把思想對映成實際的源**。函式式程式設計將使生活更輕鬆,但並不是唯一的方面。在下一節中,我們將看到另乙個概念,它更容易了解程式的執行。

10 宣告式事務

1.程式設計式事務 由程式設計師程式設計事務控制 opensessionlnview程式設計式事務 2.宣告式事務 事務控制 已經由spring寫好,程式設計師只需要宣告出哪些方法需要進行事務控制和如何進行事務控制。這裡講解的是 註解配置事務,如果想去理解xml的同學 可以看看其它的 這裡只講解註解...

基礎10 宣告式事務

大致開發流程如下 準備資料來源資訊 資料庫驅動jar包 spring jdbc模組 使用spring的jdbctemplate來運算元據庫 在 configuration註解類上新增 enabletransactionmanagement註解,來開啟基於註解的事務管理功能 註冊事務管理器platfo...

Spring 九 宣告式事物

事物 保證資料的一致性和完整性 事物就是把一系列的動作當做乙個獨立的工作單元,這些動作要麼全部完成,要麼都不起作用 spring在不同的事務管理api之上定義了乙個抽象層,使得開發人員不必了解底層的事務管理api就可以使用spring的事務管理機制,spring支援程式設計式事務管理和宣告式的事務管...