Wzorce projektowe ArrayList DataGridView Aplikacja i zdarzenia
Transkrypt
Wzorce projektowe ArrayList DataGridView Aplikacja i zdarzenia
Wzorce projektowe ArrayList DataGridView Aplikacja i zdarzenia Paweł Chodkiewicz Wzorzec – uniwersalne rozwiązanie często powtarzających się problemów. „Wzorzec opisuje problem, który powtarza się wielokrotnie w danym środowisku, oraz podaje istotę jego rozwiązania w taki sposób, aby można było je zastosować miliony razy bez potrzeby powtarzania tej samej pracy” Christopher Alexander „A pattern language”, 1977 Częste pytanie: Czy istnieje rozwiązanie problemu zapisane na tyle ogólnie aby można było je zastosować do konkretnego przypadku? Termin wzorca projektowego do inżynierii oprogramowania został wprowadzony przez Kenta Becka oraz Warda Cunninghama w 1987 roku. Został spopularyzowany w 1995 przez tzw. Bandę Czterech (Erich Gamma, Richard Helm, Ralph Johnson oraz John Vlissides) dzięki książce Inżynieria oprogramowania: Wzorce projektowe Elementy wzorca : - nazwy wzorca - problemu - rozwiązania - konsekwencji Dokumentacja: Nazwa wzorca: opisowa oraz unikalna nazwa, Przeznaczenie: opis celu, Inne nazwy: jeżeli istnieją inne, dobrze znane nazwy wzorca, Motywacja: scenariusz zawierający problem powiązany z kontekstem Stosowalność: sytuacje, w których wzorzec może być użyteczny. Struktura: graficzna reprezentacja wzorca Uczestnicy: lista klas i obiektów stosowanych w tym wzorcu, Współpraca: opis wzajemnej interakcji klas i obiektów, Konsekwencje: wykaz wyników, efektów ubocznych, Implementacja: wskazówki dotyczące implementacji wzorca, Przykładowy kod: przykład zastosowania wzorca z wykorzystaniem jednego z języków programowania. Przykłady zastosowania: znane przykłady, Pokrewne wzorce: odniesienie wzorca do innych wzorców, Podstawowy podział wzorców na cztery kategorie: Kreacyjne opisują, w jaki sposób obiekty są tworzone, Behawioralne opisują zachowanie obiektów, Strukturalne opisują sposób, w jaki obiekty są zbudowane, Architektoniczne opisują bardziej abstrakcyjne wzorce. Drugi model dzieli wzorce na kategorie według ich zakresów: klasowe – opisujące statyczne związki pomiędzy klasami; obiektowe – opisujące dynamiczne związki pomiędzy obiektami. Katalog wzorców projektowych Gang of Four (Gamma,Johnson, Helm, Vlissides) obejmuje 23 wzorce: Kreacyjne: - Abstract Factory, - Builder, - Factory Method, - Prototype, - Singleton Strukturalne: - Adapter, - Bridge, - Composite, - Decorator, - Composite, - Facade, - Proxy, - Flyweight Behawioralne: - Chain of Responsibility, - Command, - Interpreter, - Mediator, - Iterator, - Memento, - Observer, - State, - Strategy, - Template Method, - Visitor Builder -celem jest rozdzielenie sposobu tworzenia obiektów od ich reprezentacji. Innymi słowy proces tworzenia obiektu podzielony jest na kilka mniejszych etapów a każdy z tych etapów może być implementowany na wiele sposobów. Stosowany jest do konstrukcji obiektów złożonych, których konfiguracja jest procesem wieloetapowym. Klasa ArrayList Pozwala na przechowanie dowolnych obiektów w liście. Możemy w łatwy sposób nimi operować. Nie musimy deklarować jej rozmiarów – rozmiar zmienia się dynamicznie po dodaniu lub usunięciu obiektu. Add : dodanie elementu ArrayList Insert : dodanie elementu na konkretne miejsce w ArrayList Remove : usunięcie elementu z ArrayList RemoveAt: usunięcie elementu z konkretnej pozycji Deklaracja Dodanie elementu Dodanie elementu w konkretne miejsce Usunięcie elementu Usunie element o indeksie pobranym z pola tekstowego txtIndeks Wyczyszczenie listy Kasuje wszystkie elementy listy Wyczyszczenie listy Kasuje wszystkie elementy listy Odwrócenie kolejności w liście listaStudentow.Reverse() Usunięcie zakresu danych RemoveRange(start, ile) Właściwości Capacity - zwraca jaką ilość elementów lista może zawierać Count – zwraca bieżącą ilość elementów w liście DataGridView Sposób prezentowania danych w GUI DataGridView Sposób prezentowania danych w GUI Dodanie kolumny Dodanie wiersza Zdarzenia – wykorzystywane podczas programowania GUI – np.: klinięcie myszą, przesunięcie myszy Obiekty i zdarzenia