Ich habe ein paar Domain-Objekte, Nachricht und Kontakt:Set Objektvariablen Innerhalb Service-Methode
public class Contact {
String name;
}
public class Message {
String body;
Contact contact;
}
Ich bin eine Liste von Message
bevölkern und ihnen den Benutzer zeigt. Kontaktinformationen für jede der Nachrichten werden asynchron abgerufen, und dann wird die Liste aktualisiert. Dies ist im Grunde, wie ich sie aufrichten
listAdapter.setDataSet(listOfMessages);
for (Message message : listOfMessages) {
fetchContactDetails(message);
}
...
fetchContactDetails(Message message) {
contactService
.fetchContactDetails(listOfMessages)
.subscribeOn... // observe, etc
.observe(new Observable<Contact>() {
onNext(Contact contact) {
message.setContact(contact);
list.notifyChanged(message);
}
});
Das fühlt sich an wie eine Menge Code, da ich könnte stattdessen nur jede Funktion Message
Contact
innerhalb des Dienstes aktualisieren contactService.fetchContactDetails
. Im Gegenteil, es fühlt sich unrein an, eine Dienstmethode zu verwenden, um das übergebene Objekt zu modifizieren, ohne etwas zurückzugeben.
Ist es eine schlechte Übung, eine Service-Funktion zu verwenden, um ein als Argument übergebenes Objekt zu aktualisieren, ohne etwas zurückzugeben?
Die einzige Sache, die ich hinzufügen würde, ist, dass Sie notifyChanged einmal aufrufen sollten, nachdem alle Nachrichten Kontakte haben; Dies beschleunigt die Benutzeroberfläche, da sie nur einmal aktualisiert werden muss. –
was ist das .obesrve()? und das neue Observable? Ich würde erwarten, zu abonnieren – yosriz