Graficzna implementacja wzorca stanu dla stron jest zawarta w poniższym schemacie: Klasa PageContext zawiera różne stany oraz parametry z danej strony. Klasa abstrakcyjna PageState deklaruje metodę Handle(), która jest definiowana przez konkretny stan. Klasa bazowa zawiera nazwę pliku ze stroną (np. Page1.aspx) w polu PageName. W każdej ze stron (Page*.aspx) zdefiniowane jest zdarzenie odpowiadające za zmianę stanu (przejście do innej strony). Dla strony Page1.aspx definicja wygląda następująco:
protected void GoToNextPage(object sender, EventArgs ea) { var thisContext = new PageContext(new PageState1()) { IsChecked = Condition1.Checked}; thisContext.Request(); this.Response.Redirect(thisContext.State.PageName); }Klasa PageContext ma zdefiniowaną metodę Request(), która dla danego stanu wywołuje metodę Handle(). Cały przykład można pobrać z tego pliku:
Brak komentarzy:
Prześlij komentarz