Czy nie wszystkie klasy powinny zawierać się w ich plikach?
Niekoniecznie jako Android Activity
to klasa "specjalnych przypadków". Jeśli nie zostało to jeszcze zrobione, polecam lekturę Application Fundamentals aw szczególności rozdział „działalność” pod Application components ...
Działalność reprezentuje pojedynczy ekran z interfejsem użytkownika. Na przykład aplikacja e-mail może mieć jedno działanie, które pokazuje listę nowych wiadomości e-mail, inną czynność związaną z tworzeniem wiadomości e-mail i inną czynnością dotyczącą czytania wiadomości e-mail. Mimo że działania współdziałają w celu zapewnienia spójnego doświadczenia użytkownika w aplikacji poczty e-mail, każda z nich jest niezależna od innych. W związku z tym inna aplikacja może uruchomić dowolną z tych czynności (jeśli aplikacja e-mailowa na to zezwala). Na przykład aplikacja aparatu fotograficznego może uruchomić działanie w aplikacji e-mail, która tworzy nową pocztę, aby użytkownik mógł udostępnić zdjęcie.
Zwróć uwagę na wyróżniony fragment tekstu wyróżniony pogrubieniem. Chodzi o to, że sama Activity
nie jest kompletną aplikacją i jeśli jest to dozwolone, każda aplikacja innej firmy może potencjalnie wywołać Activity
w jednej z twoich aplikacji. W związku z tym powszechnym jest, aby Activity
był jak najbardziej niezależny. Jednym z konkretnych przykładów jest użycie czegoś takiego jak AsyncTask, który zapewnia metody wykonywania wątku w tle, a także manipulowania interfejsem użytkownika - zagnieżdżanie klasy prywatnej, która rozszerza się o AsyncTask
, jest dość powszechne i upraszcza kod. Zagnieżdżanie klas o rozszerzeniu BroadcastReceiver jest również powszechne z tego samego powodu.
To powiedziawszy, nie ma nic złego w korzystaniu z oddzielnych plików klas Java dla klas pomocnika POJO, na przykład sprowadza się to tylko do złożoności aplikacji, ale może to oznaczać, że bierze się pod uwagę działanie niektórych klas Androida - AsyncTask
klasa będąca jednym z nich, jeśli jest zdefiniowany w osobnym pliku klasy, spróbuj, a zobaczysz, co mam na myśli. :-)
Czy możesz zamieścić kilka przykładów, aby lepiej zobrazować swoje pytanie? – elevine
OOP nie zawsze jest najlepszą praktyką; a podzielenie na tysiące plików nie zawsze daje dobry program OOP. –