[英]What is the difference between declarative and imperative paradigm in programming?
[英]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.