Декларативный и программный пользовательский интерфейс (экземпляры объектов, XAML, MXML, XUL и т. Д.) - PullRequest
4 голосов
/ 23 июня 2011

Я пытался принять решение, какой подход использовать для создания пользовательского интерфейса: программный или декларативный.Я использую JavaScript и веб-технологии.В некоторых проектах, таких как ExtJS и YUI , они используют программный подход:

var container = new Ext.Container({
    style: 'padding: 4px;',
    items: [
        new Button({text: 'hello'})
    ]
});

container.render(document.body);

Программный подход может быть необходим, когда вам необходимо динамически создавать компоненты представления (?).Это также может быть проще для программирования, по крайней мере, мне кажется, так как я привык к API и помощникам кода.

Однако некоторые технологии, такие как XUL (используется для Firefox и Thunderbird UI), основаны на декларативномподход:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="vbox example" title="Example 3...."
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <vbox>
    <button id="yes" label="Yes"/>
    <button id="no" label="No"/>
    <button id="maybe" label="Maybe"/>
  </vbox>
</window>

Существует также инфраструктура JavaScript GUI под названием AmpleSDK , которая использует декларативный подход.Итак, у меня есть два варианта выбора для моего приложения на основе JavaScript.

Flex также поддерживает декларативные пользовательские интерфейсы, а также программные.WFP и Silverlight, похоже, сосредоточены на XAML .Кроме того, Open Laszlo , похоже, использует декларативный подход.

Затем я вижу jQuery UI программным, а Dojo Toolkit чем-то среднимдва подхода.

У меня есть несколько вопросов:

1) Можно ли реализовать динамические (компоненты, добавленные во время выполнения) пользовательские интерфейсы только декларативным образом?

2) Имеет ли смысл поддерживать оба подхода, чтобы можно было использовать декларативный стиль для большей части части и, если необходимо, использовать программный стиль?

3) Какой из них вы предпочитаете и почему?

Ответы [ 2 ]

1 голос
/ 23 июня 2011

1) Да, вы всегда можете сделать что-то вроде: elem.innerHTML = ""; Большинство языков поддерживают нечто подобное.

2) Из того, что я видел, большинство языков поддерживают оба. Я думаю, в конце концов, одна разновидность просто превращается в другую. Не поддерживая ни то, ни другое, язык ограничивал бы себя. (Я не хочу использовать xyz, я не могу написать пользовательский интерфейс декларативно / программно).

3) Мне лично нравится декларативное, оно имеет тенденцию делать вещи в меньшем количестве строк.

0 голосов
/ 04 сентября 2016

Это зависит от того, какое приложение вы хотите сделать:

& rarr; Статический

Декларативный синтаксис намного лучше, проще в управлении

& rarr; Динамический

Лучше всего подойдет сочетание декларативного и программного

...