声明式编程和命令式编程之间有什么区别?

Ela*_*nda 5 .net c# architecture asp.net

我阅读了以下关于Microsoft .Net的架构:由Dino Esposito和Andrea Saltarello 构建企业应用程序:

无论何时采用声明性方法进行编码而不是命令式方法,您都要将一些职责委托给其他一些代码层 - 一个您无法完全控制的层.因此,您最终希望中间工具能够正确理解您,并且在此过程中不会遇到任何问题.在软件开发中,委派给第三方可以加快开发速度,但是您应该保证用户能够得到您想要的结果.

这并不意味着您不应该信任Visual Studio 2008或类似的基于向导的产品.这一点完全是另一回事.在一个可能由几个团队开发的大型系统中,经典的声明性编程只是不起作用.您需要在演示文稿中包含一层代码,用于决定要显示的内容,在何处阅读设置以及如何应用这些设置.声明性编程仍然是一个很好的选择,但只有你编写引擎和向导.

有人可以用简单的语言向我解释究竟什么是声明性和命令式编程?

Ode*_*ded 7

声明 - 我将描述我想要你做什么,你想出来(SQL,XSLT).

势在必行 - 我会告诉你到底要做什么,一步一步(C#,Java).


Wik*_*hla 7

例子.

声明性编程:

<asp:DropDownList runat="server" DataSourceID="ObjectDataSource1" />
<asp:ObjectDataSource runat="server" ID="ObjectDataSource1" ItemUpdating="..." />
Run Code Online (Sandbox Code Playgroud)

命令式编程:

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

DropDownList list = new DropDownList();
list.ID = "";
list.DataSource = source;
list.DataBind();
Run Code Online (Sandbox Code Playgroud)


man*_*lds 2

声明式编程——应该做什么

命令式编程 - 你想要的事情应该如何完成。

声明式编程要求开发人员说出要做什么。命令式编程要求开发人员逐步定义代码应如何执行。

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

阅读此处了解更多信息:http://www.informit.com/articles/article.aspx? p=1330154&seqNum=4