Problem jest bardzo prosty. Obiekt musi powiadomić o zdarzeniach, które mogą być interesujące dla obserwatorów.Co jest odpowiednikiem zdarzeń .NET w Ruby?
Kiedy usiadłem, aby sprawdzić poprawność projektu, który przygotowałem teraz w Ruby, tylko po to, aby go potwierdzić. Nie mogę się doczekać, jak zaimplementować zdarzenia obiektu. W .Net byłoby to jedno-liniowe .. .Net również obsługuje weryfikację podpisu metody obsługi, itp. na przykład
// Object with events
public delegate void HandlerSignature(int a);
public event HandlerSignature MyEvent;
public event HandlerSignature AnotherCriticalEvent;
// Client
MyObject.MyEvent += new HandlerSignature(MyHandlerMethod); // MyHandlerMethod has same signature as delegate
Czy istnieje moduł EventDispatcher lub coś, co mi brakuje, że mogę podpiąć do klasy Ruby? Mając nadzieję na odpowiedź, która gra z zasadą najmniejszego zaskoczenia Rubiego. Zdarzenie będzie nazwą zdarzenia oraz kolejką obiektów [obserwator, nazwa metody], które należy wywołać podczas zdarzenia.
Niezupełnie .. Wydaje się, że jest to implementacja Wzorca Obserwacyjnego. Potrzebuję tego, aby obiekt Boiler ujawnił wiele zdarzeń, takich jak WaterExhausted, Started, itp. I klienci subskrybujący ich programy obsługi (nie ograniczone do pojedynczej metody "aktualizacji"). – Gishu