Как правильно Object Orient ориентировать программу на Android? - PullRequest
6 голосов
/ 27 июня 2011

Я посмотрел много уроков о том, как программировать для Android - я даже сам начал создавать некоторые программы.Однако я заметил, что все мои программы выглядят как процедурные, в то время как Java должна работать с объектной ориентацией.Я пытался это исправить, но я нашел проблему.Основной класс моей программы - тот, который выполняется в начале приложения (например, под com.testprogram.www), кажется одновременно смесью экранного и управляющего слоев.

На всехУчебники, которые я обнаружил, я вижу визуальный объект, восстанавливаемый из представления main.xml (например, кнопка - это восстановление указывает мне, что это будет «контрольный» слой для обработки), и сразу после этого объект регистрируется вкакой-то слушатель (в данном случае OnClickListener - это должно быть сделано на экране, а не в элементе управления, верно?).

Это должно быть так?Этот основной класс в пакете www, что?«Экранный» слой или «контрольный»?Является ли этот класс правильным местом для того, что я упомянул выше?Это сделано так, потому что основанный на XML интерфейс не может зарегистрировать слушателей Java?Кто-нибудь знает хорошее место для меня, чтобы перейти к ссылкам о том, как OO для Android?

Ответы [ 4 ]

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

Вы можете проверить два вопроса относительно двух разных архитектурных шаблонов.

0 голосов
/ 31 августа 2011

MVVM с использованием Binding очень полезен в программировании Android. Это помогает уменьшить перегруженную структуру Activity, которая в настоящее время существует в инфраструктуре. Ниже приведена библиотека Binding с открытым исходным кодом, которую вы можете использовать.

http://code.google.com/p/android-binding/wiki/Motivation

0 голосов
/ 28 июня 2011

Если вы используете стандартные шаблоны компоновки в качестве xml, строки в strings.xml, действия для обработчиков и поместите базовую логику / алгоритмы / извлечение хранилища данных в отдельный класс (класс модели), вы будете хорошо чувствовать себя на своемспособ написания лучшего кода.

Чтобы проверить свою архитектуру,

1) Спросите себя, можете ли вы выполнить модульное тестирование базовой логики / алгоритма / хранилища данных (класс модели) отдельно от пользовательского интерфейса.Можете ли вы без труда повторно использовать класс модели в другом проекте с другим пользовательским интерфейсом?

2) Затем спросите себя, можете ли вы перенести свое приложение на другой язык, просто указав необязательный файл strings.xml.

Таким образом, презентация (View) в основном находится в main.xml.Код обработки событий и системы (Controller) находится в основном в MyActivity.java. Алгоритм / хранилище данных находится в основном в Model.java.

Действительно большое разделение между основным алгоритмом / хранилищем данных и пользовательским интерфейсом.Основной алгоритм / хранилище данных должны игнорировать детали пользовательского интерфейса.В UNIX это шаблон INTERFACE (VC) -ENGINE (M).Отделение View от контроллера просто продвигает архитектуру на шаг вперед.

Надеюсь, это поможет, JAL

0 голосов
/ 27 июня 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...