簡體   English   中英

聲明式編程和命令式編程之間有什么區別?

[英]What's the difference between declarative and imperative programming?

我閱讀了以下關於Microsoft .Net的架構:由Dino Esposito和Andrea Saltarello 構建企業應用程序

無論何時采用聲明性方法進行編碼而不是命令式方法,您都要將一些職責委托給其他一些代碼層 - 一個您無法完全控制的層。 因此,您最終希望中間工具能夠正確理解您,並且在此過程中不會遇到任何問題。 在軟件開發中,委托給第三方可以加快開發速度,但是您應該保證用戶能夠得到您想要的結果。

這並不意味着您不應該信任Visual Studio 2008或類似的基於向導的產品。 這一點完全是另一回事。 在一個可能由多個團隊開發的大型系統中,經典的聲明性編程只是不起作用。 您需要在演示文稿中包含一層代碼,用於決定要顯示的內容,在何處閱讀設置以及如何應用這些設置。 聲明性編程仍然是一個很好的選擇,但只有你編寫引擎和向導。

有人可以用簡單的語言向我解釋究竟什么是聲明性和命令式編程?

聲明 - 我將描述我想要你做什么,你想出來(SQL,XSLT)。

勢在必行 - 我會告訴你到底要做什么,一步一步(C#,Java)。

例子。

聲明性編程:

<asp:DropDownList runat="server" DataSourceID="ObjectDataSource1" />
<asp:ObjectDataSource runat="server" ID="ObjectDataSource1" ItemUpdating="..." />

命令式編程:

ObjectDataSource source = new ObjectDataSource();
source.ItemUpdating += ...;

DropDownList list = new DropDownList();
list.ID = "";
list.DataSource = source;
list.DataBind();

聲明性編程 - 應該做什么

命令式編程 - 應該如何完成你想要的。

聲明性編程要求開發人員說明要做什么。 命令式編程要求開發人員逐步定義代碼的執行方式。

示例:C#中的LINQ是聲明性的。

在此閱讀更多信息: http//www.informit.com/articles/article.aspx?p = 1330154&seqNum = 4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM