Что такое декларативный интерфейс?

16

Я продолжаю видеть этот термин в блогах о фреймворках. Хотя я понимаю разницу между декларативным и императивным программированием, как это относится конкретно к пользовательскому интерфейсу? Почему для него существует специальный термин? Это разные «вещи»? Если да, то какова альтернатива декларативному пользовательскому интерфейсу и зачем мне его использовать?

MrFox
источник
1
@Telastyn. Императив и декларативность - это очень разные вещи. Это «что» против «как». HTML-макет будет декларативным. Последовательность инструкций рисования была бы обязательна.
mike30
@mike: ОП спросил, отличается ли императивный / декларативный интерфейс от императивного / декларативного программирования. Они не.
Теластин
@Telastyn OP запрашивает разницу между декларативным пользовательским интерфейсом и <foo> пользовательским интерфейсом (таким как «императивный пользовательский интерфейс»), и существует ли альтернатива декларативному пользовательскому интерфейсу.
Изката

Ответы:

14

«Декларативный пользовательский интерфейс» означает, что вы описываете на каком-то языке, какие элементы вам нужны в вашем пользовательском интерфейсе и в какой-то степени, как они должны выглядеть, но вы можете не указывать такие детали, как точное положение и визуальный стиль элементов. Например, в HTML вы можете описать, что вам нужно поле ввода, но как и где это поле будет размещено в пользовательском интерфейсе, сильно зависит от браузера, который вы используете.

Сегодня этот термин чаще используется для каркасов пользовательского интерфейса со строгим отделением внешнего вида пользовательского интерфейса от поведения, что означает код, реагирующий на события пользовательского интерфейса. Например, используя XAML, вы объявляете внешний вид вашего пользовательского интерфейса на определенном диалекте XML, но реализуете поведение в отдельном программном коде.

Док Браун
источник
1
Хороший ответ. Nitpick: независимо от того, указаны ли детали, такие как «точное положение» или нет, ортогонально декларативному / императивному разделению. Однако на практике подход, позволяющий компьютеру обрабатывать детали, более распространен в декларативных системах (хотя я не уверен, почему).
Слеське
8

Декларативный пользовательский интерфейс - это пользовательский интерфейс, который разработан декларативным способом (вы описываете, каким он должен быть), а не императивным способом (вы кодируете шаги для его создания). В этом нет ничего особенного или необычного; это было по крайней мере с 1990-х годов, когда у вас были Visual Basic и Delphi с дизайнерами визуальных форм, которые позволяли вам интуитивно понятным образом изобразить пользовательский интерфейс вашей программы.

Мейсон Уилер
источник