W aplikacjach na system Android używam Otto jako magistrali zdarzeń i Dagger dla wtrysku zależności.Zalety wstrzykiwania magistrali zdarzeń Otto zamiast używania statycznego singletonu
W podręczniku użytkownika Otto oraz w wielu postach na blogu zaleca się użycie wtrysku, aby uzyskać singleton. Robiłem to od jakiegoś czasu, ale ostatnio jestem coraz bardziej wątpliwy, czy wstrzyknięcie autobusu ma jakiekolwiek zalety w porównaniu z prostym statycznym singletonem.
Z wtryskiem muszę wstrzyknąć każdy niestandardowy widok lub ViewHolder, że chcę móc publikować zdarzenia interfejsu użytkownika na magistrali. Zwłaszcza ze sztyletem wydaje się nieco niezdarne wstrzykiwanie każdej klasy, w której potrzebuję autobusu. Oczywiście, mógłbym przekazać magistralę za pomocą konstruktora lub metody ustawiającej, ale to może być trochę niezgrabne, jeśli myślisz o adapterze z wieloma różnymi typami widoków, na przykład.
I nie widzę żadnych korzyści w wstrzykiwaniu autobusu. W przypadku Otto wprowadzana jest konkretna implementacja (przykład Bus), która nigdy się nie zmieni. Zawijanie Otto do de-łączenia nie ma sensu, jeśli myślisz, ze względu na sposób działania subskrypcji.
Czy ktoś widzi jakieś zalety wstrzyknięcia Otto, którego nie widzę?
Spójrz na http://stackoverflow.com/questions/2662842/dependency-injection-singleton-design-pattern – pjanecze
dziękuję, to bardzo pouczające. –