В чем разница между декларативным и императивным программированием? - PullRequest
5 голосов
/ 20 ноября 2011

Я прочитал следующие абзацы об архитектуре из Microsoft .Net: Разработка приложений для предприятия , Дино Эспозито и Андреа Сальтарелло:

Всякий раз, когдавы применяете декларативный подход к кодированию, а не императивный подход, вы делегируете некоторые обязанности другому уровню кода - уровню, который вы не полностью контролируете.Таким образом, вы в конечном итоге надеетесь, что промежуточный инструмент правильно вас поймет и не столкнется с какими-либо собственными проблемами на этом пути.В разработке программного обеспечения делегирование третьей стороне ускоряет разработку, но вы должны гарантировать, что пользователи получат именно то, что вам нужно.

Это не означает, что вы не должны доверять Visual Studio 2008 или аналогичному мастеру.продукты на основеДело совсем в другом.В большой системе, которую, вероятно, разрабатывают несколько команд, классическое декларативное программирование просто не работает.В вашей презентации должен быть слой кода, который решает, что отображать, где читать настройки и как их применять.Декларативное программирование все еще является отличным вариантом, но только если вы пишете движок и мастера.

Может кто-нибудь объяснить мне простыми словами, что такое декларативное и императивное программирование?

Ответы [ 3 ]

7 голосов
/ 20 ноября 2011

Примеры.

Декларативное программирование:

<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();
7 голосов
/ 20 ноября 2011

Декларативный - я опишу, что я хочу, чтобы вы делали, вы выясните это (SQL, XSLT).

Императив - я вам скажу точно что делать, один шагза один раз (C #, Java).

2 голосов
/ 20 ноября 2011

Декларативное программирование - что нужно сделать

Императивное программирование - как нужно делать то, что вы хотите.

Декларативное программирование требует, чтобы разработчики сказали, что нужно сделать.Императивное программирование требует, чтобы разработчики пошагово определяли, как должен выполняться код.

Пример: LINQ в C # является декларативным.

Подробнее читайте здесь: http://www.informit.com/articles/article.aspx?p=1330154&seqNum=4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...