1 Cz.8 [email protected] Zdarzenia
2 Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
3 Co to jest refleksja? Jak pobrać wszystkie publiczne pola? Atrybuty
4 Delegat Wskaźnik na funkcję Element klasy Pozwala przypisywać metody
5 Konsola - sekwencyjne wykonywanie kodu Jeden wątek Komunikacja ze światem zewnętrznym Wiele wątków Coś się może zmieniać poza nami Brak sekwencyjności
6 Reagujemy na zewnętrzne zdarzenia Kliknięcie myszką Pracę innego wątku Interaktywność Rozdzielenie interfejsu użytkownika od logiki Button: OnClick() {Universe.Create();} Button2: OnClick() {Universe.Destroy();}
7 public class Computation { public event EventHandler ComputationStarted; private void Start(){} } Window(){ bStop.Click += new EventHandler(bStop_Click); bStart.Click += new EventHandler(bStart_Click); bLoad.Click += new EventHandler(bLoad_Click); cl.ComputationStarted += new EventHandler(OnComputationStarted); cl.ComputationStarted += new EventHandler(SendEmail); cl.ComputationStarted += new EventHandler(WaitFewSecondsThenDestroyUnivesre); }
8 Obserwator (ang. observer) – w informatyce: wzorzec należący do grupy wzorców czynnościowych. Używany jest do powiadamiania zainteresowanych obiektów o zmianie stanu pewnego innego obiektu. Wyróżniamy subject i listener bStop.Click += new EventHandler(bStop_Click);
9 Napisz klasę która informuje słuchaczy o zmianach wartości property Napisz program który będzie informował otoczenie o zmianach konfiguracji (załadowanie pliku konfiguracyjnego, zmiana, zapisanie, stworzenie, wczytanie itd.)