IObservable vs event в контрактных интерфейсах
От: Shmj Ниоткуда  
Дата: 03.09.21 07:51
Оценка: 1 (1)
Если возникают периодические события, как то через WebSocket сервер что-то передает, и вам нужно это отобразить в контрактах системы.

Существует стандартный механизм — механизм событий. Он как бы официально встроен в язык C# и всем понятен. Но минусы есть:

1. Событие нельзя вернуть как результат работы метода. К примеру, вы хотите передать в метод некоторые параметры, чтобы отфильтровать события — этого сделать нельзя, т.к. события привязаны ко всему инстансу.

2. Не всегда уместный синтаксист — sender, eventArgs — не важен sender и вместо eventArgs хотелось бы вернуть что-то концентрированное.

3. Можно забыть отписаться и это будет удерживать GC очистки.

IObservable лишен всех этих недостатков. Однако же он не является общепринятым и многие вообще не понимают его.

Что бы вы предпочли?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.