Co to jest deklaratywny interfejs użytkownika?

16

Cały czas widzę, jak ten termin jest rozpowszechniany na blogach o frameworkach. Rozumiem różnicę między programowaniem deklaratywnym a imperatywnym, ale w jaki sposób odnosi się to konkretnie do interfejsu użytkownika? Dlaczego wydaje się, że istnieje na to specjalny termin? Czy są to różne „rzeczy”? Jeśli tak, jaka jest alternatywa dla deklaratywnego interfejsu użytkownika i dlaczego miałbym go używać?

MrFox
źródło
1
@Telastyn. Tryb rozkazujący i deklaratywny to bardzo różne rzeczy. To „co” kontra „jak”. Układ HTML byłby deklaratywny. Konieczna byłaby sekwencja instrukcji rysowania.
mike30
@mike: OP zapytał, czy imperatywny / deklaratywny interfejs użytkownika różni się od programowania imperatywnego / deklaratywnego. Oni nie są.
Telastyn
@Telastyn OP pyta o różnicę między deklaratywnym interfejsem użytkownika a <foo> interfejsem użytkownika (takim jak „imperatywny interfejs użytkownika”), a nawet jeśli istnieje alternatywa dla deklaratywnego interfejsu użytkownika.
Izkata

Odpowiedzi:

14

„Deklaratywny interfejs użytkownika” oznacza, że ​​w jakimś języku opisujesz elementy, których potrzebujesz w interfejsie użytkownika, i do pewnego stopnia, jak powinny one wyglądać, ale możesz pominąć szczegóły, takie jak dokładna pozycja i styl wizualny elementów. Na przykład w HTML możesz opisać, że chcesz mieć pole wejściowe, ale sposób i miejsce umieszczenia tego pola w interfejsie użytkownika zależy w dużej mierze od używanej przeglądarki.

Obecnie termin ten jest częściej używany dla struktur interfejsu użytkownika z ścisłym oddzieleniem wyglądu interfejsu użytkownika od zachowania, co oznacza kod reagujący na zdarzenia interfejsu użytkownika. Na przykład za pomocą XAML deklarujesz wygląd interfejsu użytkownika w określonym dialekcie XML, ale zaimplementujesz zachowanie w oddzielnym kodzie programu.

Doktor Brown
źródło
1
Dobra odpowiedź. Nitpick: czy szczegóły takie jak „dokładna pozycja” są określone czy nie, jest prostopadłe do podziału deklaratywnego / imperatywnego. Jednak w praktyce podejście pozwalające komputerowi obsługiwać szczegóły jest bardziej powszechne w systemach deklaratywnych (choć nie jestem pewien dlaczego).
śleske,
8

Deklaratywny interfejs użytkownika to interfejs zaprojektowany w sposób deklaratywny (opisujesz, jak powinien on wyglądać), a nie w trybie imperatywnym (kodujesz kroki, aby go utworzyć). To naprawdę nic specjalnego lub niezwykłego; istnieje już od co najmniej lat dziewięćdziesiątych, kiedy miałeś Visual Basic i Delphi z wizualnymi projektantami formularzy, które pozwalają ci ułożyć interfejs użytkownika programu w intuicyjny, WYSIWYG.

Mason Wheeler
źródło