Android-объектно-ориентированное программирование - PullRequest
7 голосов
/ 11 сентября 2011

Я дурачусь с некоторыми основами программирования на Android с использованием Eclipse.В настоящее время я просматриваю книгу и играю с некоторым примером кода, который написан в книге.

Я заметил, что в этой конкретной книге все примеры до сих пор идут в ногу с Main-Activity.Я не считаю, что это очень хорошая практика объектно-ориентированного программирования, поскольку я из традиционного языка Java.

Является ли это обычной практикой для мобильных платформ?Разве все классы не должны содержаться в их собственных файлах?

Ответы [ 3 ]

6 голосов
/ 11 сентября 2011

Разве все классы не должны содержаться в своих собственных файлах?

Не обязательно, поскольку Android Activity является классом "особого случая".Если вы этого еще не сделали, я бы рекомендовал вам прочитать Основы применения и, в частности, раздел "Действия" в разделе Компоненты приложения ...

Деятельность представляет собой один экран с пользовательским интерфейсом.Например, приложение электронной почты может иметь одно действие, которое показывает список новых электронных писем, другое действие для создания электронного письма и другое действие для чтения электронных писем. Несмотря на то, что действия работают вместе для формирования единого пользовательского интерфейса в приложении электронной почты, каждое из них не зависит от других.Таким образом, другое приложение может запустить любое из этих действий (если приложение электронной почты позволяет это). Например, приложение камеры может запустить действие в приложении электронной почты, которое составляет новую почту, чтобы пользователь могподелиться картинкой.

Обратите внимание на фрагмент текста, который я выделил жирным шрифтом.Дело в том, что Activity сам по себе не является полным приложением, и, если это разрешено, любое стороннее приложение может потенциально вызывать Activity в одном из ваших приложений.Таким образом, принято делать Activity настолько автономным, насколько это возможно.Одним конкретным примером является использование чего-то вроде AsyncTask , который предоставляет методы для выполнения фонового потока, а также для управления пользовательским интерфейсом - вложение частного класса, который расширяет AsyncTask, довольно распространено и упрощает код.Классы вложения, которые расширяют BroadcastReceiver , также распространены по той же причине.

Тем не менее, нет ничего плохого в использовании отдельных файлов классов Java для классов-помощников POJO, например, он просто сводитсянасколько сложным является ваше приложение, но это может означать особое внимание к тому, как работают определенные классы Android - класс AsyncTask является единичным, если он определен в отдельном файле классов, попробуйте, и вы поймете, что я имею в виду.: -)

5 голосов
/ 11 сентября 2011

ОО - это введение функциональности в классы.То, как вы пишите эти классы определяет, будет ли это хорошо OO или нет (хотя это спорно).Независимо от того, находятся ли все эти классы в одном или нескольких файлах, или у каждого класса есть собственный файл, это вопрос вкуса, а не проблема ОО.

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

0 голосов
/ 03 августа 2013

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

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

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