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 - 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 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