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

时间:2011-11-19 21:14:28

标签: c# asp.net .net architecture

我阅读了以下关于Microsoft .Net: Architecting Applications for the Enterprise的建筑,Dino Esposito和Andrea Saltarello的建筑:

  

每当你采用声明式方法编码而不是   必要的方法,你将一些责任委托给某些人   其他代码层 - 您无法完全控制的层。所以你是   最终希望中间工具能够理解你   正确的,并不会遇到任何自己的麻烦。在   软件开发,委托给第三方进行开发   更快,但你应该保证用户得到你想要的   他们来。

     

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

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

3 个答案:

答案 0 :(得分:7)

声明 - 我将描述我想要你做什么,你弄明白了(SQL,XSLT)。

势在必行 - 我会告诉你完全做什么,一步一步(C#,Java)。

答案 1 :(得分:7)

实施例

声明性编程:

<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();

答案 2 :(得分:2)

声明性编程 - 应该做什么

命令式编程 - 你应该怎么做。

声明性编程要求开发人员说明要做什么。命令式编程要求开发人员逐步定义代码的执行方式。

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

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