Основы дизайна ООП Android - PullRequest
2 голосов
/ 10 марта 2011

Это может быть довольно просто, но я начал терять понимание ООП ...

Я хочу разработать несколько классов, чтобы уменьшить количество кода в моем основном классе деятельности, чтовырос до 1000+ линий.(Класс для обработки событий пользовательского интерфейса, класс для обработки сообщений, класс для сигналов тревоги / широковещания и т. Д.).

Однако этим классам потребуется доступ к защищенным методам Activity, таким как findViewById.

Я не думаю, что имеет смысл проектировать эти классы с использованием наследования, потому что они сами по себе не являются активностями ... Я ищу что-то вроде класса друга в Java.

Есть совет?Извините, если это звучало довольно расплывчато.

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Для приложений с графическим пользовательским интерфейсом одним из наиболее важных шаблонов проектирования, которому вы должны следовать, является шаблон Model-View-Controller (MVC).

Android отлично справляется со стилем MVC. Действие можно рассматривать как часть контроллера, а разметка XML - это часть представления.

Если ваши новые классы совершают много вызовов findViewById, возможно, вы не распределяете обязанности должным образом. Если вы делаете много манипуляций с представлениями, вы можете рассмотреть создание подклассов ваших классов View и ссылки на них в вашем XML . Если вы добавляете много прослушивателей событий, вам, вероятно, следует продолжать делать это в подклассе Activity и вместо этого передавать полученные данные в ваши вспомогательные классы, а не в сам объект представления.

0 голосов
/ 10 марта 2011

Почему бы вам просто не реализовать обработчики сообщений в отдельном классе и передать «this» (экземпляр вашего текущего класса) этому классу обработчика, чтобы вы могли вызывать эти методы.Также обратите внимание на шаблон проектирования внедрения зависимостей.

...