Über mich bewerbung muster

Vielen Dank für die Antwort und Die Klarstellung. Ich werde versuchen, das zu tun, was Sie gesagt haben. Guter Blog mit guten Beispielen. Es ist ziemlich schwierig, eine gute saubere Architektur zu haben und lose in Android gekoppelt. Alle diese Broadcast-Empfänger, Absichten, Handler, Looper, asyncTasks, Aktivitäts- und Fragmentrückrufe, Wiedergabedienste-Rückrufe., Lader, Adapter.. Es ist schwer, die Bedenken zu trennen. Ich wriiting Android-Anwendung für mein Diplom (Karten v2, Aktivitätserkennung, geschmolzene Standortanbieter, Geofences, eine Art Tracking-App mit Hintergrunddiensten…) und ich möchte klare Architektur haben, wie Onkel Bob vorschlagen, aber seine harte, verry hart. Zu viel Wrapper, Schnittstellen, Houndreds von kleinen Klassen und Schnittstellen. Ich habe diese App bereits geschrieben.

Es funktionierte, aber es war ein Code-Chaos. Jetzt bin ich komplett neu schreiben diese App mit besserer Architektur im Auge und Abstraktionen, Muster… Ich möchte eine App in Core-Layer mit Robolectric Tests und dann die andere Sachen UI schreiben, DB (die ich bereits von früher habe). Ich würde wirklich gerne eine solche Entkopplung anwenden, aber ich sehe keine Möglichkeit, dies unter Berücksichtigung des Aktivitätslebenszyklus zu tun, ohne es übermäßig kompliziert zu machen. Irgendwelche Idee? Ich bin gespannt, was Sie und die Community darüber denken. Die Dienste werden hauptsächlich Domänenebene sein. MVP nimmt nur an der Präsentationsebene teil, so dass es wahrscheinlich keine Beziehung zwischen ihnen geben wird. Wenn Sie die Ansichten mit Informationen aus Diensten füttern müssen, dann würde ich eine Art Observer-Muster oder Ereignisbus verwenden. Hallo alle , Ich habe ein Problem mit diesem Muster , Ich muss eine Präferenz auf dem Gerät zu speichern , aber ich weiß nicht, ob den Anruf auf die Ansicht oder Modell . Irgendwelche Ideen? Grund: Ein Neuling bekommt vielleicht nicht die Probleme, über die ich in meinem ersten Kommentar geschrieben habe. Ich habe eine Bibliothek veröffentlicht, um Adapter zu entkoppeln, um das mvp-Muster anzuwenden.

Im Beispielmodul sehen Sie, dass die Adapter vollständig entkoppelt und isoliert werden. Ich wünsche Ihnen, dass Es nützlich ist. Ich bin dankbar, Ihre Kommentare und Ratschläge zu erhalten. Einfach Ihre Ansicht auf Null und sicher aufrufen Ihre Ansicht Stellmethoden kann eine Möglichkeit sein, Abstürze und Lecks zu vermeiden, aber was ist mit der Benutzererfahrung?! Angenommen, ein Prozess wird gestartet und dessen Lieferzeit etwa 10 Sekunden beträgt, aber nach 5 Sekunden klickt der Benutzer einfach auf die Home-Schaltfläche und sendet die Aktivität an den Hintergrund, was mit den Ergebnissen Ihrer Zuhörer geschieht? Sie lösen nichts in Sicht aus und das Ergebnis verschwindet einfach, ohne den Benutzer über die Änderungen zu informieren. Also, im Grunde ist diese Schreibweise nur eine sehr einfache Demo und keine Lösung Das gleiche könnte für komplexere Ansichten gelten, bei denen Daten geladen werden müssen. Beispielsweise erstellt die MainActivity in Ihrem Beispiel den Presenter neu, wenn ein Benutzer sein Gerät dreht. Wenn die Elemente vor dem Drehen des Geräts geladen wurden, werden sie beim Drehen neu geladen, was den Benutzer verwirren kann! Ich verwende keine Cursor-Adapter, mag sie nicht, weil sie mich nicht auf eine gute Weise schichten trennen lassen. Ich betrachte Adapter als Teil von Ansichten, Moderatoren wissen nichts über Kontext oder, in den meisten Fällen, Android SDK. Sicher, wie gesagt, MVP ist selbst kein Architekturmuster, und dieses Beispiel versucht nicht, irgendeine Art von Layer-Architektur zu implementieren. Wie Sie sagten, interaktoren sollten nichts über Android wissen.

Es gibt Möglichkeiten, Threads nur mit Java zu verwenden, aber sogar Android-Tools können mithilfe der Abhängigkeitsinversion verwendet werden. Core kann Android-Funktionen über Schnittstellen und Abhängigkeitsinjektion verwenden. Ihre Framework-Schicht kann eine Schnittstelle mit den Methoden implementieren, die Sie in Ihrem Interaktor benötigen. Sie können z. B. eine AsyncTask mit einer Kernklasse umschließen, diese Kernklasse als Grundlage für asynchrone Aufrufe verwenden und über Rückrufe oder einen Ereignisbus zurückkommunizieren. Es gibt viele Artikel über saubere Architektur, aber ich könnte einen anderen schreiben, um es so einfach wie möglich zu erklären, weil ich denke, dass wir dort einen besseren Job machen können. Als ich das Muster zum ersten Mal heruntergeladen habe, dachte ich mir, wie verrückt es war, dass sich einige der angegebenen Dinge so punktgenau anfühlten.

CategoriesUncategorized