Що таке декларативний інтерфейс?


16

Я продовжую бачити, як цей термін кидається в блоги про рамки. Хоча я розумію різницю між декларативним та імперативним програмуванням, як це стосується конкретно інтерфейсу? Чому, як видається, існує спеціальний термін для цього? Це різні "речі"? Якщо так, що є альтернативою деклараційному інтерфейсу і чому я хочу його використовувати?


1
@Telastyn. Імператив і декларатив - це дуже різні речі. Це "що" проти "як". Макет HTML буде декларативним. Послідовність інструкцій з малювання була б обов'язковою.
mike30

@mike: ОП запитала, чи імперативний / декларативний інтерфейс відрізняється від імперативного / декларативного програмування. Їх немає.
Теластин

@Telastyn OP задає різницю між декларативним інтерфейсом та <foo> користувальницьким інтерфейсом (наприклад, "імперативний користувальницький інтерфейс"), і якщо альтернатива деклараційному інтерфейсу навіть існує.
Ізката

Відповіді:


14

"Декларативний інтерфейс" означає, що ви описуєте якоюсь мовою, які елементи вам потрібні у вашому інтерфейсі, і певною мірою, як вони повинні виглядати, але ви можете залишити деталі, як точне положення та візуальний стиль елементів. Наприклад, в HTML ви можете описати, що ви хочете поле введення, але як і де це поле буде розміщене в інтерфейсі, дуже залежить від браузера, який ви використовуєте.

Сьогодні цей термін частіше використовується для фреймворків інтерфейсу із суворим відокремленням вигляду інтерфейсу користувача від поведінки, що означає код, що реагує на події інтерфейсу користувача. Наприклад, використовуючи XAML, ви оголошуєте вигляд вашого інтерфейсу в конкретному діалекті XML, але ви реалізуєте поведінку в окремому програмному коді.


1
Гарна відповідь. Нітпік: вказуються чи ні такі деталі, як "точна позиція", є ортогональними для декларативного / імперативного розриву. Однак на практиці підхід дозволити комп'ютеру обробляти деталі частіше зустрічається в декларативних системах (хоча я не впевнений, чому).
sleske

8

Декларативний інтерфейс - це інтерфейс, розроблений декларативним способом (ви описуєте, яким він має бути), а не імперативним способом (ви кодуєте кроки для його створення.) Це насправді нічого особливого чи незвичного; це було щонайменше з 1990-х років, коли у вас були Visual Basic та Delphi з дизайнерами візуальних форм, які дозволяли викладати користувальницький інтерфейс вашої програми інтуїтивно зрозумілим способом WYSIWYG.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.