Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00277 005627 11251636 na godz. na dobę w sumie
Visual Basic. Wzorce projektowe - książka
Visual Basic. Wzorce projektowe - książka
Autor: Liczba stron: 440
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-710-7 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> visual basic - programowanie
Porównaj ceny (książka, ebook, audiobook).
Ta książka jest praktycznym podręcznikiem tworzenia programów w języku Visual Basic (w wersji 6 oraz .NET) wykorzystujących wzorce projektowe. Może służyć także jako krótkie wprowadzenie do programowania w nowej wersji .NET języka Visual Basic. Wzorce projektowe omówiono w niej w szeregu krótkich rozdziałów, z których każdy przedstawia jeden wzorzec i ilustruje jego wykorzystanie za pomocą jednego lub więcej kompletnych i działających programów z okienkowym interfejsem użytkownika. Każdy rozdział zawiera też diagramy UML ilustrujące powiązania pomiędzy klasami występującymi w implementacji wzorca.

Dzięki niniejszej książce czytelnik dowie się, że wzorce projektowe stanowią powszechnie stosowany sposób organizacji obiektów w programach w celu ich uproszczenia i ułatwienia późniejszych modyfikacji. Wzorce projektowe wprowadzają także zasób nowych pojęć, dzięki któremu łatwiej można opisać konstrukcje tworzonych programów.

Programiści w trakcie zapoznawania się z tematyką wzorców projektowych doznają zwykle momentu olśnienia odkrywając potęgę poznawanego wzorca. Moment ten oznacza, że właśnie uświadomili sobie, w jaki sposób mogą wykorzystać dany wzorzec w swojej pracy.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE ZAM(cid:211)W DRUKOWANY KATALOG ZAM(cid:211)W DRUKOWANY KATALOG TW(cid:211)J KOSZYK TW(cid:211)J KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAM(cid:211)W INFORMACJE ZAM(cid:211)W INFORMACJE O NOWO(cid:140)CIACH O NOWO(cid:140)CIACH ZAM(cid:211)W CENNIK ZAM(cid:211)W CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥flEK ONLINE FRAGMENTY KSI¥flEK ONLINE Visual Basic. Wzorce projektowe Autorzy: James W. Cooper T‡umaczenie: Jaromir Senczyk Tytu‡ orygina‡u: and VB.NET ISBN: 83-7197-710-7 Liczba stron: 440 Visual Basic. Design Patterns. VB 6.0 Ta ksi„¿ka jest praktycznym podrŒcznikiem tworzenia program(cid:243)w w jŒzyku Visual Basic (w wersji 6 oraz .NET) wykorzystuj„cych wzorce projektowe. Mo¿e s‡u¿y(cid:230) tak¿e jako kr(cid:243)tkie wprowadzenie do programowania w nowej wersji .NET jŒzyka Visual Basic. Wzorce projektowe om(cid:243)wiono w niej w szeregu kr(cid:243)tkich rozdzia‡(cid:243)w, z kt(cid:243)rych ka¿dy przedstawia jeden wzorzec i ilustruje jego wykorzystanie za pomoc„ jednego lub wiŒcej kompletnych i dzia‡aj„cych program(cid:243)w z okienkowym interfejsem u¿ytkownika. Ka¿dy rozdzia‡ zawiera te¿ diagramy UML ilustruj„ce powi„zania pomiŒdzy klasami wystŒpuj„cymi w implementacji wzorca. DziŒki niniejszej ksi„¿ce czytelnik dowie siŒ, ¿e wzorce projektowe stanowi„ powszechnie stosowany spos(cid:243)b organizacji obiekt(cid:243)w w programach w celu ich uproszczenia i u‡atwienia p(cid:243)(cid:159)niejszych modyfikacji. Wzorce projektowe wprowadzaj„ tak¿e zas(cid:243)b nowych pojŒ(cid:230), dziŒki kt(cid:243)remu ‡atwiej mo¿na opisa(cid:230) konstrukcje tworzonych program(cid:243)w. Programi(cid:156)ci w trakcie zapoznawania siŒ z tematyk„ wzorc(cid:243)w projektowych doznaj„ zwykle momentu ol(cid:156)nienia odkrywaj„c potŒgŒ poznawanego wzorca. Moment ten oznacza, ¿e w‡a(cid:156)nie u(cid:156)wiadomili sobie, w jaki spos(cid:243)b mog„ wykorzysta(cid:230) dany wzorzec w swojej pracy. Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Spis treści Przedmowa........................................................................................................... 13 Część I Programowanie obiektowe w języku Visual Basic ..........15 Rozdział 1. Czym są wzorce projektowe? .......................................................... 17 Definicja wzorców projektowych ...................................................w...............................18 Proces uczenia się ...................................................w...................................................w....20 Studiowanie wzorców projektowych ...................................................w..........................21 Uwagi na temat podejścia obiektowego...................................................w......................21 Wzorce projektowe w Visual Basicu ...................................................w..........................22 Jak zorganizowana jest ta książka? ...................................................w.............................22 Rozdział 2. Diagramy UML................................................................................ 23 Dziedziczenie ...................................................w...................................................w...........24 Interfejsy ...................................................w...................................................w............... ...25 Kompozycja ...................................................w...................................................w.............26 Adnotacje ...................................................w...................................................w................ .27 Diagramy UML — program WithClass...................................................w......................27 Pliki projektów Visual Basica...................................................w.....................................28 Rozdział 3. Klasy i obiekty w Visual Basicu....................................................... 29 Prosty program konwersji temperatur...................................................w.........................29 Tworzenie klasy Temperature...................................................w.....................................30 Konwersja na stopnie Kelvina ...................................................w.............................32 Przesunięcie decyzji do klasy Temperature ...................................................w................32 Zastosowanie klas do konwersji wartości i formatu ...................................................w...34 Obsługa niedozwolonych wartości ...................................................w......................36 Klasa String Tokenizer...................................................w................................................36 Klasy i obiekty ...................................................w...................................................w.........38 Zawieranie klas ...................................................w...................................................w.40 Inicjalizacja klasy...................................................w...................................................w.....40 Klasy i metody typu Property ...................................................w.....................................41 Kolejny przykład interfejsu klasy — woltomierz ...................................................w.......43 Klasa vbFile ...................................................w...................................................w.............43 Styl programowania w Visual Basicu...................................................w.........................45 Podsumowanie ...................................................w...................................................w.........46 Rozdział 4. Programowanie obiektowe .............................................................. 47 Tworzenie obiektów w Visual Basicu ...................................................w........................48 Tworzenie instancji obiektów ...................................................w.....................................49 Program do pomiaru odległości ...................................................w..................................49 Metody wewnątrz obiektów...................................................w........................................50 Zmienne ...................................................w...................................................w.................. .50 4 Visual Basic. Wzorce projektowe Rozdział 5. Przekazywanie parametrów przez referencję i przez wartość........................................51 Żargon obiektowy ...................................................w...................................................w....51 Tworzenie kontrolek w Visual Basicu.............................................. 53 Podświetlone pole tekstowe ...................................................w........................................53 Zmiana wymiarów kontrolki...................................................w................................55 Testowanie kontrolki HiText ...................................................w......................................55 Właściwości i metody kontrolki ...................................................w.................................56 Kompilacja ...................................................w...................................................w...............57 Podsumowanie ...................................................w...................................................w.........57 Rozdział 6. Dziedziczenie i interfejsy ................................................................. 59 Interfejsy ...................................................w...................................................w............... ...59 Symulator inwestycji...................................................w...................................................w60 Implementacja symulatora ...................................................w..........................................61 Kiedy użyć interfejsu? ...................................................w................................................62 Metody wspólne...................................................w...................................................w.......65 Interfejsy ukryte ...................................................w...................................................w.......66 Podsumowanie ...................................................w...................................................w.........67 Rozdział 7. Wprowadzenie do języka Visual Basic .NET .................................... 69 Różnice w składni Visual Basic .NET ...................................................w........................69 Ulepszona składnia funkcji ...................................................w..................................70 Deklaracje zmiennych i ich zakresy...................................................w............................71 Obiekty w Visual Basic .NET...................................................w..............................72 Opcje kompilatora...................................................w...................................................w....73 Zmienne numeryczne w Visual Basic .NET ...................................................w........74 Właściwości w języku Visual Basic wersja 6 i VB.NET ..............................................74 Skrócona notacja operacji przypisania ...................................................w.........................75 Języki prekompilowane i zarządzanie pamięcią ...................................................w.........76 Klasy w Visual Basic .NET ...................................................w........................................76 Tworzenie aplikacji w środowisku Visual Basic .NET .................................................78 Najprostszy program okienkowy w Visual Basic .NET ................................................79 Zastosowanie dziedziczenia ...................................................w........................................81 Konstruktory ...................................................w...................................................w............82 Programowanie grafiki w Visual Basic .NET...................................................w.............84 Podpowiedzi i kursory ...................................................w................................................85 Przeciążanie metod ...................................................w...................................................w..85 Dziedziczenie w języku Visual Basic .NET...................................................w...................86 Przestrzenie nazw...................................................w...................................................w.....87 Klasa Square...................................................w...................................................w......88 Dostęp do składowych klasy...................................................w.......................................89 Zastępowanie metod w klasach pochodnych ...................................................w..............89 Przeciążanie i przesłanianie ...................................................w........................................90 Zastępowanie kontrolek ...................................................w..............................................92 Interfejsy ...................................................w...................................................w............... ...93 Podsumowanie ...................................................w...................................................w.........94 Tablice, pliki oraz wyjątki w Visual Basic .NET ............................... 95 ....95 Tablice...................................................w...................................................w.................. Kolekcje ...................................................w...................................................w................. ..97 Klasa ArrayList ...................................................w...................................................w.97 Tablice z kodowaniem mieszającym ...................................................w...................98 Klasa SortedList ...................................................w...................................................w98 Wyjątki...................................................w...................................................w.................. ...98 Obsługa wielu wyjątków...................................................w.............................................99 Rozdział 8. Spis treści 5 Wywoływanie wyjątków...................................................w...........................................100 Operacje na plikach...................................................w...................................................w100 Klasa File ...................................................w...................................................w........101 Odczyt danych z pliku tekstowego ...................................................w....................102 Zapis danych w pliku tekstowym...................................................w.......................102 Wyjątki a operacje na plikach ...................................................w...................................102 Sprawdzanie osiągnięcia końca pliku ...................................................w.......................103 Klasa FileInfo...................................................w...................................................w.........103 Klasa vbFile ...................................................w...................................................w...........104 Część II Wzorce konstrukcyjne ................................................107 Rozdział 9. Wzorzec Simple Factory................................................................ 109 Sposób działania wzorca Simple Factory ...................................................w.................109 Przykładowy program ...................................................w...............................................110 Klasy pochodne...................................................w...................................................w......110 Klasa Simple Factory ...................................................w................................................111 Użycie fabryki...................................................w...................................................w.112 Implementacja fabryki w Visual Basic .NET ...................................................w...........113 Fabryki w obliczeniach matematycznych ...................................................w.................114 Zagadnienia do przemyślenia...................................................w....................................115 Rozdział 10. Wzorzec Factory Method .............................................................. 117 Klasa Swimmer ...................................................w...................................................w......120 Klasa Events i jej klasy pochodne...................................................w.............................120 Rozstawienie bezpośrednie ...................................................w.......................................122 Rozstawienie okalające ...................................................w......................................123 Program rozstawiający ...................................................w..............................................124 Jeszcze jedno zastosowanie fabryki ...................................................w..........................124 Program rozstawiający w Visual Basic .NET ...................................................w...........125 Kiedy należy używać wzorca Factory Method? ...................................................w.......127 Zagadnienia do przemyślenia...................................................w....................................128 Rozdział 11. Wzorzec Abstract Factory ............................................................. 129 Abstract Factory i projektowanie ogrodów ...................................................w..................129 Interfejs użytkownika programu Gardener ...................................................w...............131 Abstract Factory w Visual Basic .NET ...................................................w.....................133 PictureBox...................................................w...................................................w.......135 Obsługa zdarzeń wyboru...................................................w....................................135 Rozbudowa programu o kolejne klasy...................................................w......................137 Konsekwencje stosowania wzorca Abstract Factory ...................................................w137 Zagadnienia do przemyślenia...................................................w....................................137 Rozdział 12. Wzorzec Singleton ........................................................................ 139 Wzorzec Singleton i metody statyczne ...................................................w.....................139 Obsługa błędów...................................................w...................................................w......141 Globalny punkt dostępu ...................................................w............................................141 Kontrolka MSComm i wzorzec Singleton ...................................................w................142 Porty dostępne w systemie ...................................................w.................................143 Wzorzec Singleton w Visual Basic .NET ...................................................w.................144 Zastosowanie konstruktora o dostępie prywatnym ...............................................145 Obsługa błędów...................................................w..................................................145 Program SpoolDemo...................................................w.................................................146 Globalny punkt dostępu ...................................................w............................................148 Inne konsekwencje wzorca Singleton ...................................................w.......................148 Zagadnienia do przemyślenia...................................................w....................................148 6 Visual Basic. Wzorce projektowe Rozdział 13. Wzorzec Builder............................................................................ 149 Program do śledzenia inwestycji...................................................w...............................150 Zastosowanie wzorca Builder ...................................................w...................................151 Budowniczy okna listy wyboru...................................................w.................................153 Budowniczy okna pól wyboru ...................................................w..................................154 Implementacja wzorca Builder w Visual Basic .NET .................................................155 Klasa StockFactory ...................................................w............................................156 Klasa CheckChoice ...................................................w............................................157 Klasa ListboxChoice ...................................................w..........................................158 Kolekcje obiektów klasy Items ...................................................w.................................159 Ostateczna wersja programu ...................................................w..............................160 Konsekwencje zastosowania wzorca Builder ...................................................w...........160 Zagadnienia do przemyślenia...................................................w....................................162 Rozdział 14. Wzorzec Prototype ....................................................................... 163 Klonowanie obiektów w Visual Basicu wersja 6...................................................w......164 Zastosowanie prototypu ...................................................w............................................164 Zastosowanie wzorca Prototype...................................................w................................167 Dodatkowe metody w klasach pochodnych...................................................w.......168 Różne klasy o wspólnym interfejsie ...................................................w..................169 Menedżer prototypów ...................................................w...............................................171 Wzorzec Prototype w Visual Basic .NET ...................................................w.................172 Konsekwencje stosowania wzorca Prototype ...................................................w...........175 Zagadnienia do przemyślenia...................................................w....................................176 Podsumowanie wzorców konstrukcyjnych...................................................w...............176 Część III Wzorce strukturalne ...................................................o177 Rozdział 15. Wzorzec Adapter .......................................................................... 179 Przenoszenie danych pomiędzy listami ...................................................w....................179 Zastosowanie MSFlexGrid ...................................................w.......................................180 Wykorzystanie TreeView ...................................................w.........................................183 Adapter obiektów ...................................................w...............................................183 Adaptery w Visual Basic .NET...................................................w.................................184 Adapter kontrolki TreeView w VisualBasic.NET ...................................................w....186 Zastosowanie DataGrid...................................................w.............................................187 Adapter klas ...................................................w...................................................w...........188 Adaptery podwójne ...................................................w...................................................w189 Adaptery obiektów i adaptery klas w Visual Basic .NET............................................190 Adaptery dynamiczne ...................................................w...............................................190 Adaptery w języku Visual Basic ...................................................w...............................190 Zagadnienia do przemyślenia...................................................w....................................190 Rozdział 16. Wzorzec Bridge ............................................................................ 191 Klasy visList ...................................................w...................................................w..........194 Diagram klas ...................................................w...................................................w..........194 Rozbudowa mostu...................................................w...................................................w..195 Kontrolki ActiveX jako mosty...................................................w..................................196 Wzorzec Bridge w Visual Basic .NET...................................................w......................198 Klasa ProductList ...................................................w...............................................198 Klasa ProductTable ...................................................w............................................199 Wczytywanie danych ...................................................w.........................................200 Zamiana stron mostu...................................................w.................................................201 Konsekwencje stosowania wzorca Bridge...................................................w..................202 Zagadnienia do przemyślenia...................................................w....................................202 Spis treści 7 Rozdział 17. Wzorzec Composite ...................................................................... 203 Implementacja kompozytu ...................................................w........................................204 Obliczanie wynagrodzeń...................................................w...........................................204 Klasa Employee ...................................................w...................................................w.....205 Klasa Subords ...................................................w...................................................w........207 Klasa Boss...................................................w...................................................w..............208 Tworzymy drzewo pracowników...................................................w..............................209 Awans pracownika...................................................w...................................................w.211 Listy dwukierunkowe...................................................w................................................212 Konsekwencje stosowania wzorca Composite ...................................................w.........213 Uproszczony wzorzec Composite ...................................................w.............................213 Kompozyty w języku Visual Basic...................................................w...........................214 Wzorzec Composite w Visual Basic .NET ...................................................w..................214 Wyliczenie...................................................w...................................................w.......215 Konstruktory klasy Boss ...................................................w....................................216 Inne zagadnienia implementacji wzorca ...................................................w...................217 Zagadnienia do przemyślenia...................................................w....................................217 Rozdział 18. Wzorzec Decorator ....................................................................... 219 Dekorator CoolButton...................................................w...............................................219 Zastosowanie dekoratora...................................................w...........................................222 Kontrolki ActiveX jako dekoratory ...................................................w..........................225 Dekorator w Visual Basic .NET ...................................................w...............................225 Dekoratory niewizualne ...................................................w............................................227 Dekoratory, adaptery i kompozyty...................................................w............................228 Konsekwencje stosowania wzorca Decorator...................................................w...........228 Zagadnienia do przemyślenia...................................................w....................................228 Rozdział 19. Wzorzec Facade ........................................................................... 229 Czym jest baza danych? ...................................................w............................................229 Uzyskiwanie informacji z bazy danych ...................................................w....................231 Systemy baz danych...................................................w..................................................231 ODBC...................................................w...................................................w.....................232 Połączenia do baz danych w języku Visual Basic ...................................................w....232 Struktura dostępu do bazy danych ...................................................w............................232 Klasa DBase ...................................................w...................................................w....233 Budujemy fasadę...................................................w...................................................w....235 Klasa Stores...................................................w...................................................w.....237 Tworzymy tabele Stores oraz Foods...................................................w.........................239 Tabela Price...................................................w...................................................w............239 Zapytanie o cenę ...................................................w................................................241 Podsumowanie wzorca Facade ...................................................w.................................242 Wykorzystanie interfejsu ADO w języku Visual Basic...............................................243 Połączenia ADO...................................................w.................................................243 Przeszukiwanie i dodawanie rekordów...................................................w..............244 Wykorzystanie rozszerzeń interfejsu ADO...................................................w........244 Klasa DBase wykorzystująca ADO ...................................................w..........................245 Dostęp do baz danych w Visual Basic .NET...................................................w................248 Wykorzystanie ADO.NET ...................................................w........................................249 Połączenie do bazy danych ...................................................w................................249 Odczyt danych z bazy ...................................................w........................................249 Wykonanie zapytania ...................................................w.........................................250 Usuwanie danych z tabeli...................................................w...................................250 Dodawanie rekordów do tabeli za pomocą ADO.NET................................................251 Fasada ADO w Visual Basic .NET...................................................w...........................252 Klasa DBTable ...................................................w...................................................w253 8 Visual Basic. Wzorce projektowe Klasy Stores i Foods ...................................................w.................................................254 Klasa Prices...................................................w...................................................w............256 Załadowanie danych do bazy ...................................................w....................................257 Końcowa postać programu...................................................w........................................259 W jaki sposób działa fasada? ...................................................w....................................260 Konsekwencje stosowania wzorca Facade ...................................................w...............260 Zagadnienia do przemyślenia...................................................w....................................260 Rozdział 20. Wzorzec Flyweight........................................................................ 261 Omówienie ...................................................w...................................................w.............262 Przykład zastosowania wzorca Flyweight...................................................w....................262 Diagram klas ...................................................w...................................................w...265 Wybór folderu ...................................................w...................................................w.265 Implementacja wzorca Flyweight w języku Visual Basic .NET..................................267 Zastosowanie wzorca Flyweight w języku Visual Basic .............................................270 Obiekty współdzielone...................................................w..............................................271 Obiekty kopiowane podczas zapisu ...................................................w..........................271 Zagadnienia do przemyślenia...................................................w....................................271 Rozdział 21. Wzorzec Proxy.............................................................................. 273 Przykładowy program ...................................................w...............................................274 Implementacja wzorca Proxy w języku Visual Basic .NET ........................................275 Wzorzec Proxy w języku Visual Basic ...................................................w.....................277 Kopiowanie podczas zapisu ...................................................w......................................277 Porównanie z innymi wzorcami...................................................w................................278 Zagadnienia do przemyślenia...................................................w....................................278 Podsumowanie wzorców strukturalnych...................................................w......................278 Część IV Wzorce czynnościowe.................................................279 Rozdział 22. Wzorzec Chain of Responsibility.................................................... 281 Zastosowania wzorca ...................................................w................................................282 Przykładowy program ...................................................w...............................................282 Listy ...................................................w...................................................w.................... Implementacja systemu pomocy ...................................................w...............................287 Obsługa polecenia pomocy ...................................................w................................289 Łańcuch czy drzewo?...................................................w................................................290 Wzorzec Chain of Responsibility w Visual Basic .NET .............................................291 Rodzaje obsługiwanych żądań ...................................................w..................................293 Zastosowanie wzorca w języku Visual Basic ...................................................w...........293 Konsekwencje stosowania wzorca Chain of Responsibility........................................294 Zagadnienia do przemyślenia...................................................w....................................294 ...285 Rozdział 23. Wzorzec Command ....................................................................... 295 Motywacja...................................................w...................................................w..............295 Polecenie jako obiekt ...................................................w................................................296 Konstrukcja obiektów Command...................................................w..............................297 Tablice poleceń ...................................................w...................................................w......298 Konsekwencje stosowania wzorca Command ...................................................w..........301 Implementacja funkcji Undo...................................................w.....................................301 Wzorzec Command w Visual Basic .NET...................................................w................305 Interfejs CommandHolder...................................................w.........................................307 Implementacja funkcji Undo w Visual Basic .NET...................................................w..310 Wzorzec Command w języku Visual Basic ...................................................w..............312 Zagadnienia do przemyślenia...................................................w....................................312 Spis treści 9 Rozdział 24. Wzorzec Interpreter ...................................................................... 313 Motywacja...................................................w...................................................w..............313 Zastosowania...................................................w...................................................w..........313 Przykład prostego raportu ...................................................w.........................................314 Interpreter języka ...................................................w...................................................w...315 Obiekty używane podczas parsowania ...................................................w.....................316 Redukcja tokenów do operacji ...................................................w..................................319 Implementacja wzorca Interpreter...................................................w.............................320 Drzewo składni...................................................w...................................................w321 Implementacja wzorca Interpreter w Visual Basicu wersja 6......................................324 Obiekty używane podczas parsowania ...................................................w.....................326 Konsekwencje stosowania wzorca Interpreter ...................................................w..........327 Zagadnienia do przemyślenia...................................................w....................................328 Rozdział 25. Wzorzec Iterator........................................................................... 329 Motywacja...................................................w...................................................w..............329 Przykład iteratora w Visual Basicu wersja 6 ...................................................w................330 Pobranie iteratora ...................................................w...............................................331 Iteratory filtrujące ...................................................w...................................................w..332 Wyliczenie filtrowane ...................................................w........................................332 Iteratory w Visual Basic .NET ...................................................w..................................333 Konsekwencje stosowania wzorca Iterator...................................................w.................335 Rozdział 26. Wzorzec Mediator......................................................................... 337 Przykładowy system ...................................................w.................................................337 Interakcje pomiędzy elementami interfejsu ...................................................w..............338 Przykładowy program ...................................................w...............................................339 Inicjalizacja systemu ...................................................w..........................................342 Mediatory i obiekty poleceń ...................................................w.....................................342 Wzorzec Mediator w języku Visual Basic .NET ...................................................w......342 Inicjalizacja ...................................................w...................................................w.....344 Obsługa zdarzeń dla nowych kontrolek ...................................................w.............345 Konsekwencje stosowania wzorca Mediator ...................................................w............346 Mediator z pojedynczym interfejsem...................................................w........................347 Kwestie implementacji...................................................w..............................................347 Rozdział 27. Wzorzec Memento ........................................................................ 349 Motywacja...................................................w...................................................w..............349 Implementacja ...................................................w...................................................w........350 Przykładowy program ...................................................w...............................................350 Ostrzeżenie...................................................w...................................................w......356 Obiekty poleceń interfejsu użytkownika...................................................w......................356 Obsługa pozostałych zdarzeń...................................................w....................................357 Implementacja wzorca Memento w języku Visual Basic .NET ..................................358 Konsekwencje stosowania wzorca Memento ...................................................w...........360 Zagadnienia do przemyślenia...................................................w....................................360 Rozdział 28. Wzorzec Observer ......................................................................... 361 Obserwacja zmian kolorów...................................................w.......................................362 Implementacja wzorca Observer w języku Visual Basic .NET ...................................364 Inne rodzaje komunikatów...................................................w........................................366 Konsekwencje stosowania wzorca Observer ...................................................w............366 Zagadnienia do przemyślenia...................................................w....................................367 10 Visual Basic. Wzorce projektowe Rozdział 29. Wzorzec State .............................................................................. 369 Przykładowy program ...................................................w...............................................369 Przełączanie stanów ...................................................w..................................................373 Interakcja pomiędzy klasami Mediator i StateManager...............................................374 Klasa FillState ...................................................w...................................................w........377 Lista wycofań operacji ...................................................w..............................................378 Wypełnianie okręgów w Visual Basicu wersja 6..................................................380 Implementacja wzorca Pattern w języku Visual Basic .NET ......................................381 Mediator — klasa wszechwiedząca? ...................................................w........................385 Konsekwencje stosowania wzorca State ...................................................w......................386 Przejścia pomiędzy stanami ...................................................w......................................386 Zagadnienia do przemyślenia...................................................w....................................386 Rozdział 30. Wzorzec Strategy ......................................................................... 387 Motywacja...................................................w...................................................w..............387 Przykładowy program ...................................................w...............................................388 Kontekst ...................................................w...................................................w.................389 Polecenia programu...................................................w...................................................w390 Strategie dla wykresu liniowego i wykresu słupkowego .............................................390 Tworzenie wykresów w języku Visual Basic ...................................................w...........391 Implementacja wzorca Strategy w języku Visual Basic .NET ....................................392 Konsekwencje stosowania wzorca Strategy ...................................................w.............396 Rozdział 31. Wzorzec Template Method............................................................ 397 Motywacja...................................................w...................................................w..............397 Rodzaje metod w klasie bazowej ...................................................w..............................398 Przykładowy program ...................................................w...............................................399 Klasa StdTriangle...................................................w...............................................400 Klasa IsoscelesTriangle...................................................w......................................401 Program rysujący trójkąty...................................................w.........................................402 Szablony i wywołania zwrotne ...................................................w.................................403 Konsekwencje stosowania wzorca Template Method .................................................404 Rozdział 32. Wzorzec Visitor ............................................................................ 405 Motywacja...................................................w...................................................w..............405 Zastosowania wzorca Visitor ...................................................w....................................406 Przykładowy program ...................................................w...............................................407 Wizytowanie obiektów jednej klasy ...................................................w.........................408 Wizytowanie obiektów wielu klas ...................................................w............................409 Kierownicy są także pracownikami!...................................................w.........................410 Uniwersalność wizytatora ...................................................w.........................................411 Podwójne wywołania ...................................................w................................................412 Po co to wszystko?...................................................w...................................................w.412 Wizytowanie serii obiektów...................................................w......................................413 Implementacja wzorca Visitor w Visual Basicu wersja 6............................................413 Konsekwencje stosowania wzorca Visitor ...................................................w...................416 Zagadnienia do przemyślenia...................................................w....................................416 Spis treści 11 Dodatki ...................................................o....................................417 Dodatek A Przykłady na serwerze FTP ............................................................ 419 Bibliografia......................................................................................................... 423 Skorowidz........................................................................................................... 425 Rozdział 28. Wzorzec Observer W tym rozdziale przedstawimy, w jaki sposób zastosoiwać wzorzec Observer do prezen- tacji tych samych danych jednocześnie w kilku różnych formach. Jest to częste wyma- ganie w programach pisanych dla systemów posiadających okienkowy interfejs użyt- kownika. Na przykład program umożliwiający analizę cen akcji może prezentować dane za pomocą wykresu, tabeli i listy. Każda zmiana cen akcji powinna automatycznie spowodować odpowiednią zmianę we wszystkich formach iprezentacji. Do takiego sposobu działania przyzwyczaiły nas popularne programy, jak na przykład arkusz kalkulacyjny Excel. Z drugiej strony system Windows nie zawiera żadnego wspar- cia umożliwiającego jego łatwą implementację. Gdyby nawet tak było, to i tak progra- mowanie z wykorzystaniem API systemu Windows w języku C jest dość skompliko- wane. Tymczasem w programach pisanych w języku Visual Basic możemy osiągnąć pożądany efekt stosując wzorzec Observer. Wzorzec Observer zakłada, że osobne obiekty reprezentują dane programu, a osobne zajmują się ich prezentacją, oraz że te drugie obserwują zmiany zachodzące w danych. Sytuację tę ilustruje schemat przedstawiony na rysunkiu 28.1. Rysunek 28.1. Prezentacja danych za pomocą listy oraz w postaci graficznej Implementując wzorzec Observer, dane określamy zwykle jako podmiot (ang. Subject), a każdą z form jego prezentacji mianem obserwatora (ang. Observer). Każdy z obser- watorów zgłasza podmiotowi zainteresowanie jego danymi poprzez wywołanie metody podmiotu. Każdy z obserwatorów musi też posiadać znany podmiotowi interfejs, którego metody podmiot wywołuje, gdy zajdzie zmiana w jego danych. Oba te interfejsy mo- żemy zdefiniować na przykład jak poniżej. 362 Część IV ♦ Wzorce czynnościowe +PVGTHGLU1DUGTXGT 2WDNKE5WDUGPF0QVKH[ OGUI#U5VTKPI PF5WD  +PVGTHCEG5WDLGEV 2WDNKE5WDTGIKUVGT+PVGTGUV QDU#U1DUGTXGT PF5WD Korzyścią płynącą ze zdefiniowania tych interfejsów jest to, że mogą je łatwo implemen- tować praktycznie dowolne klasy bez względu na ich rizeczywistą funkcjonalność. Obserwacja zmian kolorów Napiszmy zatem prosty program ilustrujący wykorzystanie opisanej koncepcji. Jego interfejs użytkownika zawierać będzie trzy przyciski wyboru, jak przedstawiono to na rysunku 28.2. Rysunek 28.2. Program umożliwiający zmianę „danych” o kolorach Klasa okna programu będzie implementować interfejs 5WDLGEV. Oznacza to, że musi udostępnić metodę umożliwiającą obserwatorom zgłoszenie zainteresowania przecho- wywanymi przez nią danymi. Metoda TGIKUVGT+PVGTGUV będzie umieszczać kolejnego obserwatora w kolekcji. 2TKXCVG5WD5WDLGEVATGIKUVGT+PVGTGUV QDU#U1DUGTXGT QDUGTXGTU#FFQDU PF5WD W programie utworzymy dwa obiekty reprezentujące obserwatorów. Jeden będzie poka- zywał wybrany kolor i jego nazwę, a drugi doda kolor do listy. 2TKXCVG5WD(QTOA.QCF 5GVQDUGTXGTU0GY QNNGEVKQP  7VYÎTQDUGTYCVQTCNKUV[  KONUQ#U0GYNU1DUGTXGT NUQKPKV/G NUQ5JQY  KOEHT#U0GY QNQT(QTO EHTKPKV/G EHT5JQY PF5WD Rozdział 28. ♦ Wzorzec Observer 363 Tworząc okno QNQT9KPFQYzgłosimy jego zainteresowanie danymi głównego okna programu. -NCUC QNQT(TCOG +ORNGOGPVU1DUGTXGT 2WDNKE5WDKPKV U#U5WDLGEV UTGIKUVGT+PVGTGUV/G PF5WD 2TKXCVG5WD1DUGTXGTAUGPF0QVKH[ OGUI#U5VTKPI 2KE NU 5GNGEV CUG. CUG OGUI  CUGTGF 2KE$CEM QNQTXD4GF  CUGITGGP 2KE$CEM QNQTXD)TGGP  CUGDNWG 2KE$CEM QNQTXD$NWG  PF5GNGEV 2KE25GV  2KE2TKPVOGUI PF5WD Okno prezentujące listę wybranych dotąd kolorów będzie także pełnić rolę obserwatora. Reprezentująca je klasa pokazana jest poniżej. -NCUC.KUV1DUGTXGT +ORNGOGPVU1DUGTXGT 2WDNKE5WDKPKV U#U5WDLGEV UTGIKUVGT+PVGTGUV/G PF5WD  2TKXCVG5WD1DUGTXGTAUGPF0QVKH[ OGUI#U5VTKPI  7OKGħèPCY[MQNQTÎYPCNKħEKG NU QNQTU#FF+VGOOGUI PF5WD Wybór jednego z kolorów za pomocą przycisku w głównym ioknie programu spowoduje wywołanie metody UGPF0QVKH[ dla każdego zarejestrowanego obserwatora. 2TKXCVG5WDDV QNQTA NKEM +PFGZ#U+PVGIGT  KOK#U+PVGIGT  KOOGUI#U5VTKPI  KOQDU#U1DUGTXGT OGUIDV QNQT +PFGZ  CRVKQP 2QDKGTGV[MKGVúRT[EKUMW  9[ħNKLLæYU[UVMKOQDUGTYCVQTQO (QTK6QQDUGTXGTU QWPV 5GVQDUQDUGTXGTU K QDUUGPF0QVKH[OGUI 0GZVK PF5WD W przypadku okna QNQT(QTO spowoduje to zmianę koloru wypełniającego obszar kontrolki typu 2KEVWTG$QZ, a okno .KUV(QTO doda nazwę wybranego koloru do swojej listy. Działanie programu pokazano na rysunku 28.3. Część IV ♦ Wzorce czynnościowe 364 Rysunek 28.3. Wybór koloru w głównym oknie programu prezentowany jednocześnie w formie graficznej i na liście. Efekt zastosowania wzorca Observer Implementacja wzorca Observer w języku Visual Basic .NET Podobnie jak w poprzedniej wersji programu, zdefiniujemy najpierw oba interfejsy wzorca Observer. 2WDNKE+PVGTHCEG1DUGTXGT 5WDUGPF0QVKH[ $[8CNOGUI#U5VTKPI PF+PVGTHCEG  2WDNKE+PVGTHCEG5WDLGEV 5WDTGIKUVGT+PVGTGUV $[8CNQDU#UQDUGTXGT PF+PVGTHCEG Główne okno programu również będzie zawierać trzy przyciski wyboru i reprezento- wać podmiot zawiadamiający obserwatorów o zmianach. Aby uprościć program, wszyst- kie trzy przyciski otrzymają wspólną metodę obsługi zdiarzeń.  KOGXJ#U XGPV*CPFNGT0GY XGPV*CPFNGT #FFTGUU1HTCFKQ*CPFNGT #FF*CPFNGTQR4GF NKEMGXJ #FF*CPFNGTQRDNWG NKEMGXJ #FF*CPFNGTQRITGGP NKEMGXJ Metoda ta przesyła obserwatorom łańcuch znaków opisująicy wybrany przycisk. 2TQVGEVGF5WD4CFKQ*CPFNGT $[8CNUGPFGT#U1DLGEV$[8CNG#U XGPV#TIU  KOK#U+PVGIGT  KOTDWV#U4CFKQ$WVVQP 6[RG UGPFGT4CFKQ$WVVQP (QTK6QQDUGTXGTU QWPV Rozdział 28. ♦ Wzorzec Observer 365  KOQDU#U1DUGTXGT 6[RG QDUGTXGTU K QDUGTXGT  QDUUGPF0QVKH[ TDWV6GZV 0GZVK PF5WD Klasa reprezentująca obserwatora dodającego nazwę koloru do listy jest praktycznie taka sama jak w poprzedniej wersji programu. 2WDNKE NCUUNKUV1DU +PJGTKVU5[UVGO9KP(QTOU(QTO +ORNGOGPVU1DUGTXGT 2WDNKE5WD0GY $[8CNUWDL#U5WDLGEV /[$CUG0GY NKUV1DU/G +PKVKCNKG QORQPGPV UWDLTGIKUVGT+PVGTGUV /G  PF5WD   2WDNKE5WDUGPF0QVKH[ $[8CNOGUI#U5[UVGO5VTKPI +ORNGOGPVU1DUGTXGTUGPF0QVKH[ NUEQNQTU+VGOU#FF OGUI  PF5WD PF NCUU Natomiast klasa reprezentująca obserwatora wypełniającego swoje okno kolorem będzie nieco inna. Tekst prezentujący nazwę wybranego koloru pokażemy bezpośrednio w ko- dzie metody obsługi zdarzenia odrysowania, kolor tła zmienimy w kodzie metody UGPF0QVKH[. 2WDNKE NCUU QN(QTO +PJGTKVU5[UVGO9KP(QTOU(QTO +ORNGOGPVU1DUGTXGT 2TKXCVGEQNPCOG#U5VTKPI  KOHPV#U(QPV  KOD$TWUJ#U5QNKF$TWUJ   2WDNKE5WD0GY $[8CNUWDL#U5WDLGEV /[$CUG0GY UWDLTGIKUVGT+PVGTGUV /G  QN(TCOG/G +PKVKCNKG QORQPGPV HPV0GY(QPV CTKCN TCYKPI(QPV5V[NG$QNF DDTWUJ0GY5QNKF$TWUJ QNQT$NCEM #FF*CPFNGT2KE2CKPV0GY2CKPV XGPV*CPFNGT #FFTGUU1HRCKPVJCPFNGT  PF5WD   2WDNKE5WDUGPF0QVKH[ $[8CNOGUI#U5[UVGO5VTKPI A +ORNGOGPVU8$0GV1DUGTXGT1DUGTXGTUGPF0QVKH[ EQNPCOGOGUI 5GNGEV CUGOGUI6Q.QYGT  CUGTGF RKE$CEM QNQTEQNQT4GF  CUGDNWG RKE$CEM QNQTEQNQT$NWG  CUGITGGP RKE$CEM QNQTEQNQT)TGGP  PF5GNGEV  PF5WD   366 Część IV ♦ Wzorce czynnościowe 2TKXCVG5WDRCKPV*CPFNGT $[8CNUGPFGT#U1DLGEV$[8CNG#U2CKPV XGPV#TIU  KOI#U)TCRJKEUG)TCRJKEU I TCY5VTKPI EQNPCOGHPVDDTWUJ  PF5WD PF NCUU Inne rodzaje komunikatów Zastanówmy się teraz, jakie rodzaje komunikatów może wysyłać podmiot do obserwa- torów? W naszym przykładowym programie rolę komunikatu spełniała etykieta przycisku zawierająca nazwę koloru. Nie zawsze jednak obserwator będzie oczekiwał komunikatu w postaci łańcucha znaków. Łatwo też zauważyć, że w naszym przykładzie dokonujemy dla komunikatu dwu prostych konwersji danych: 1. Pobieramy etykietę przycisku i wysyłamy ją jako ciąg znaków do obserwatora. 2. Obserwator QNQT(TCOG zamienia ciąg znaków na odpowiedni kolor. W bardziej złożonych programach obserwatorzy mogą wymagać różnych, często złożo- nych komunikatów. Każdy z nich może dokonywać wtedy niezbędnej konwersji, ale w tym celu lepiej będzie zastosować wzorzec Adapter. Innym problemem związanym z zastosowaniem wzorca Observer będzie obserwacja podmiotu, którego dane mogą zmieniać się w różny sposób. Na przykład pozycje listy mogą być dodawane lub usuwane, ale mogą być też modyfikowane. W takim przypadku musimy wysyłać do obserwatorów różne rodzaje komunikatów. Można też wysyłać nadal jeden rodzaj komunikatu, a w odpowiedzi obserwator zapyta o charakter zaist- niałych zmian. Rysunek 28.4. Klasy implementujące interfejsy obserwatora i podmiotu w przykładowym programie wykorzystującym wzorzec Observer Konsekwencje stosowania wzorca Observer Wzorzec Observer wprowadza abstrakcyjne powiązania z podmiotem. Podmiot nie zna szczegółów działania żadnego z obserwatorów. Może więc się okazać, że wobec wystą- pienia szeregu przyrostowych zmian danych podmiotu zostanie wysłana do obserwatora Rozdział 28. ♦ Wzorzec Observer 367 seria powtarzających się komunikatów, których obsługa wiązać się będzie ze zbyt dużym kosztem. Rozwiązaniem problemu będzie oczywiście wprowadzenie pewnej dodatkowej logiki, tak by informacje o zmianach nie były wysyłanie zbyt wcześnie lub zbyt często. Inny problem występuje w przypadku, gdy zmiana danych podmiotu dokonywana jest przez pewne części kodu lub systemu zwane dalej klientami. Pojawia się wtedy pytanie, kto powinien inicjować wysłanie komunikatu o zmianach. Jeśli odpowiedzialny będzie za to, jak dotychczas, sam podmiot, to w przypadku wykonywania zmian przez kilku klientów znowu mogą pojawić się serie komunikatów o nieznacznych w istocie zmianach. Można ich uniknąć, jeśli to klient będzie informował podmiot, że należy wysłać komu- nikat. Jeśli jednak któryś z klientów „zapomni” o poinformowaniu podmiotu, to program nie będzie już działał zgodnie z oczekiwaniami. Stosując wzorzec Observer można także zdefiniować kilka rodzajów komunikatów. W tym celu interfejs obserwatora może definiować kilka różnych metod powiadomienia. Dzięki temu w pewnych sytuacjach obserwator będzie mógł ignorować niektóre z nich. Zagadnienia do przemyślenia Wersja przykładowego programu, którą napisaliśmy korzystając z wersji 6 języka Visual Basic różni się w działaniu od wersji napisanej w Visual Basic .NET tym, że zamknię- cie któregokolwiek z okien obserwatorów nie powoduje zamknięcia pozostałych okien i zakończenia pracy programu. W jaki sposób można zastosować dodatkowego obser- watora, aby uzyskać efekt w postaci zakończenia proigramu?
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Visual Basic. Wzorce projektowe
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: