Подходит ли разработка пользовательского интерфейса Android под конкретный шаблон дизайна? - PullRequest
8 голосов
/ 23 февраля 2010

Платформа Android хорошо подходит для определенного стиля программирования пользовательского интерфейса, такого как MVC или MVP? Большая часть моего пользовательского интерфейса связана со спагетти-кодом на очень старом встроенном устройстве или в GWT с MVP, поэтому я не знаю, с чего начать.

Ответы [ 2 ]

14 голосов
/ 07 октября 2010

Шаблон MVC более или менее предварительно встроен в Android.

У вас есть три слоя, состоящие из:

  • Модель Ваши классы данных, контент-провайдеры и т. Д., Охватывающие все ваши данные.
  • Контроллеры Рассматривайте все свои действия как классы контроллеров. Не делайте в них ничего похожего на бизнес-логику или сохранность данных. Просто реагируйте на события модели или пользователя и перенаправляйте их на нужный слой.
  • Представление Часто Действия называют представлением, потому что там есть код Java, который является самым близким к представлениям. Но, на мой взгляд, слой представления в Android в основном определяется в XML. Вы определяете свои кнопки, изображения, изменения состояния и т. Д. В XML, а затем связываете их с вашим приложением через ваши действия.

Есть несколько простых правил, которым нужно следовать для базового разделения этих слоев.

  • Определите столько своего пользовательского интерфейса только в xml Создавай собственные представления, если есть нет другого способа достичь чего-то, не меняйте графическое состояние представления из кода, например, не изменить фон кнопки, если кнопка деактивирована, или цвет шрифта, если кнопка была нажал, сделай все это через Stateful Drawables и селекторы в XML.
  • Не сохранять данные или логику в ваши занятия Звоните на дополнительные Модельные классы для этой цели. это сделает вашу деятельность чистой и короткий
  • Если вы хотите изменить свои данные, подумайте о прохождении полного контроллер меняет модель -> модель сообщает контролеру об изменениях -> контроллер меняет цикл пользовательского интерфейса вместо наличия контроллера изменить модель и интерфейс непосредственно, потому что другие наблюдатели о режимах может не сообщаться.
2 голосов
/ 23 февраля 2010

Я не знаю, подходит ли Android для специфического шаблона проектирования, когда речь идет о разработке пользовательского интерфейса как такового, вы, безусловно, можете использовать определенный шаблон, если это поможет.

В случае сомнений вы можете ознакомиться со стандартными Руководствами по пользовательскому интерфейсу и посмотреть, каковы рекомендации для конкретных взаимодействий.

...