繁体   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