Słów kilka dla początkujących o aplikacji projektowaniu…
Od jakiegoś czasu śledzę to forum i zaobserwowałem jeden wspólny błąd wykonywany przez wszystkich początkujących programistów (sam także go wielokrotnie popełniłem). Mowa tutaj o wrzucaniu wszystkiego co jest nam potrzebne w aplikacji do jednego worka. Ani to ładne, ani to mądre. Niezależnie w stronę, którego wzorca pójdziemy (MVVM, MVP) dotrzemy do momentu, w którym zauważymy że widok został odseparowany od logiki biznesowej naszej aplikacji.
Dlaczego rozdzielamy widok od logiki biznesowej?
W wielkim skrócie możemy to podsumować zdaniem “bo jest łatwiej”. Jest zdecydowanie czytelniej, ładniej, lepiej, prościej, po prostu fajniej. A teraz odpowiedzmy w końcu na pytanie dlaczego? Spróbuję odpowiedzieć w punktach i dopisać do nich uzasadnienie:
Projektowanie aplikacji
Może tego jeszcze nie dostrzegasz, ale zaufaj
mi i innym kolegą tutaj obecnym: aplikację należy zaprojektować przed jej pisaniem, nie tworzyć ją na bieżąco podczas pisania kolejnych klas. Jeśli teraz się do tego przyłożysz (jeśli masz z tym problem to pisz śmiało - lub jeśli nie chcesz pisać do mnie to załóż temat), to w przyszłości zobaczysz jak wiele zyskałeś poświęcając swój czas już teraz na projektowanie.
Testy
Daje to możliwość otestowania swojej aplikacji - czyli mniej bugów i lepszy kod. Jeśli nauczysz się je pisać już na początku swojej kariery to później będzie Ci zdecydowanie łatwiej - poważne firmy i poważni ludzie to doceniają.
Czytelność
Teraz może wydawać Ci się lepszym rozwiązaniem trzymaniem wszystkiego w jednym miejscu, ale zaufaj bardziej doświadczonemu koledze - nie tędy wiedzie droga. Taki zapis sprawi, że debugowanie aplikacji stanie się prostsze, a Twoi obecni lub przyszli koledzy z pracy nie będą wyrywać sobie włosów z głowy czytając Twój kod.
Jak rozdzielić widok od logiki biznesowej?
Jeśli jesteś początkujący to zapewne masz problem ze zrozumieniem działania Interfejsów - chyba każdy go wtedy ma -jednak zdecydowanie ułatwiają nam tutaj zadanie. Nie musisz od razu skupiać się na jakimś wzorcu projektowym i starać go użyć popełniając przy tym błędy. Moja rada jest taka: Utwórz klasę, która będzie zawierać tylko Twoją logikę biznesową, utwórz drugą klasę zawierającą widok, potrzebna Ci jeszcze jedna klasa, która będzie pełnić rolę łącznika między dwoma wymienionymi wcześniej klasami. Do komunikacji między nimi posłużą Ci dwa interfejsy. Jeden dodasz do klasy z widokiem, drugi do klasy z logiką biznesową, w klasie “łącznik” utworzysz pola z tymi właśnie interfejsami.
Mam nadzieję, że ten artykuł okazał się dla Ciebie pomocny, jeśli tak było napisz o tym koniecznie w komentarzu. Dodając komentarz z opinią na temat artykułu dajesz mi znać czy to co robię jest dobre i użyteczne dla Ciebie i pozostałych.
Specjalnie dla Android.com.pl
Łukasz Bednarczyk