Buduję aplikację na Androida z czystą architekturą , używając wzorca MVP i wzorca repozytorium w warstwie danych. Jestem trochę zdezorientowany obiektami biznesowymi. Czy powinien istnieć obiekt do użycia w prezentacji i inny typ tego samego obiektu w domenie/warstwach danych? Jeśli tak, to gdzie i kiedy przekonwertować obiekt na inny typ?Struktura warstwowa z Androidem czystym Architektura
Odpowiedz
Choć jest to technicznie możliwe, zwykle nie ma potrzeby posiadania specjalnej reprezentacji jednostek domen dla warstwy prezentacji.
Czasami możesz znaleźć się w pozycji, gdy warstwa prezentacji wymaga powiązania ze sobą kilku podmiotów (np. Wyświetl informacje o dwóch użytkownikach biorących udział w czacie). W takich przypadkach można zdefiniować opakowanie, które połączy ze sobą wymagane elementy.
Jednak z mojego doświadczenia wynika, że takie łączenie jest rzadko wymagane i ma pewną cenę: warstwa prezentacji "czeka" na wszystkie powiązane dane, nawet jeśli części tych danych mogły już zostać pokazane użytkownikowi (np. Informacje o jednym użytkownik może zostać natychmiast pokazany, ale informacje o innym użytkowniku są pobierane z serwera). Zmniejsza to postrzeganą responsywność aplikacji.
Ogólnie rzecz biorąc, w przypadku aplikacji klienckiej schemat obiektów domenowych zwykle pochodzi ze specyfikacji interfejsu użytkownika. Dlatego też, jeśli znajdziesz się pod uwagę osobną reprezentację obiektów domeny dla warstwy prezentacji, to jest bardzo prawdopodobne, że jeden z poniższych zagadnień projektowych już obecnych w aplikacji:
- obiektów domeny wykorzystywane w aplikacji są takie same jak te, wykorzystywane do wymiany danych z serwerem
- wymagania Applicaiton ewoluowały, ale obiekty domeny nie zmieni odpowiednio
zawsze chcesz warstwa sieci mają być oddzielone od pozostałej części aplikacji. Obejmuje to schematy używane w wymianie danych z serwerem. Jeśli twoje obiekty domenowe spełniają ograniczenia nałożone przez interfejs API serwera, ale nie spełniają wymagań warstwy prezentacji, wówczas najlepiej będzie wprowadzić logikę "tłumaczenia" między warstwą sieci a resztą aplikacji.
Jeśli wymagania aplikacji ewoluowały, ale obiekty domeny nie były odpowiednio aktualizowane, zamiast oddzielnej reprezentacji dla warstwy prezentacji najlepiej jest przejrzeć projekt i zaktualizować całą aplikację zgodnie z aktualnymi wymaganiami.
- 1. Architektura N-warstwowa a architektura N-warstwowa
- 2. MonoGame - układ projektu i struktura (architektura)
- 3. N-Tier Architektura - Struktura z wielu projektów w VB.NET
- 4. Dlaczego musimy zmienić warstwę aplikacji w IPv6, jeśli jest to architektura warstwowa?
- 5. Aplikacja 3-warstwowa z Identity i EF
- 6. Przycisk wielokąta z czystym CSS
- 7. Czysta architektura kontra architektura cebulowa
- 8. Unikanie IORefs w czystym kodzie
- 9. Architektura uwierzytelniania mikroserwisów z passport.js
- 10. Architektura MoonMail Lambda z Serverless
- 11. Architektura orkiestracji a architektura napędzana wiadomościami
- 12. Architektura NHibernate?
- 13. Architektura cebulowa
- 14. złożenie transpozycji kolumn z czystym sed
- 15. Zmiana kursora okna z czystym CSS
- 16. Perforce szybko synchronizuje katalog z czystym stanem.
- 17. Ponownie uruchom nieudaną konstrukcję Jenkinsa z czystym
- 18. R Wiązanie z czystym kluczem wejściowym
- 19. Czytaj więcej link z czystym JavaScriptem
- 20. nie tak czysty Architektura
- 21. Nawigacja warstwowa Magento na niestandardowej kolekcji produktów
- 22. Nawigacja warstwowa w magento nie działa z produktami konfigurowalnymi.
- 23. Różnica między czystym i czystym katalogiem roboczym w Eclipse WTP z Tomcat
- 24. Przycisk rozwijania z Androidem
- 25. Kadrowanie aparatu z Androidem
- 26. Animacja migotania z Androidem
- 27. Obraz kwadratowy z Androidem
- 28. Przyciski bezgraniczne z Androidem
- 29. Dotykowe wydarzenie z Androidem
- 30. Głowice bezel z Androidem