W innym wątku miałem mini-discussion on the topic i chciałbym, aby ludzie mieli dostęp do "złych" stron obiektów.Przedmioty RX - czy należy ich unikać?
Osoby, które często odwiedzają forum RX wiedzą, że E.Meijer does not like Subjects. Chociaż mam najgłębszy szacunek dla opinii twórcy RX, od dłuższego czasu używam przedmiotów w wielu projektach od kilku lat i nie miałem żadnego problemu architektonicznego lub błędu z ich powodu.
Jedyną "pułapką" związaną z tematami, które mogę nazwać, jest to, że nie są one "wielokrotnego użytku" - po ukończeniu obserwowalnego przedmiotu, należy go ponownie utworzyć, zanim nowi subskrybenci mogą odbierać zdarzenia z niego.
"Zapach kodu" i "Nie lubię ich" muszą być wspierane przez "pragmatyczne" przykłady - czy możesz zwrócić uwagę na możliwe sytuacje, w których korzystanie z tematu może prowadzić do błędu lub problemu? A może uważasz, że są one łatwe i nieszkodliwe, a następnie spróbuj zdefiniować obszar, w którym mają być używane.
Brzmi rozsądnie. Poza tym sugerowałbym, że istnieją już sposoby na zawijanie zdarzeń, tj. Observable.FromEvent (Pattern), który ponownie jest bardziej preferowany dla przedmiotów. –
Uważam, że nie oznacza on po prostu owijania zdarzeń i połączeń asynchronicznych, ale używania z nich danych. Na przykład, zawijanie pary asynchronicznych wywołań 'BeginRead' /' EndRead' - 'EndRead' zwraca tylko liczbę odczytanych bajtów, aby uzyskać faktyczne dane, które musisz uzyskać, aby uzyskać dostęp do tablicy bajtów mutable przekazanych do' BeginRead'. – Tyson
Niezłe wyjaśnienie. – axel22