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