Wprowadzenie do programowania aplikacji mobilnych

Podobne dokumenty
GUI - projektowanie interfejsów

Programowanie obiektowe

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Wzorce projektowe. dr inż. Marcin Pietroo

Testowanie oprogramowania Wzorce projektowe

MVVM Light Toolkit. Julita Borkowska

Analiza i projektowanie obiektowe 2016/2017. Wykład 11: Zaawansowane wzorce projektowe (1)

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Projektowanie oprogramowania: wzorce architektoniczne i projektowe

problem w określonym kontekście siły istotę jego rozwiązania

Zaawansowane programowanie obiektowe - wykład 5

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

WZORCE PROJEKTOWE (I) (DESIGN PATTERNS)

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo

Projektowanie obiektowe Wzorce projektowe

Wzorce projektowe Michał Węgorek

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

Technologia Programowania 2016/2017 Wykład 4

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Technologia Programowania 2016/2017 Wykład 5

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności

Zaawansowane programowanie w C++ (PCP)

Wzorce oprogramowania Gof (cd) zastosowane w modelu obiektowym

Wzorce architektoniczne

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Wzorce projektowe cz. I. Wzorce projektowe cz. I 1/33

Wzorce projektowe i refaktoryzacja

Programowanie Zespołowe

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Programowanie obiektowe - 1.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Wykład 1 Inżynieria Oprogramowania

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Modelowanie i Programowanie Obiektowe

Program szkolenia: Wzorce projektowe w C++

Komentarz. W poszukiwaniu zaginionego wzorca

Wzorce projektowe [ wstęp ]

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Programowanie w języku Java WYKŁAD

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Rysunek 1: Przykłady graficznej prezentacji klas.

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

WYKŁAD 11. Wzorce projektowe czynnociowe Iterator TemplateMethod

UML [ Unified Modeling Language ]

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Technologie obiektowe

Instrukcja laboratoryjna cz.6


Programowanie obiektowe

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

Programowanie zorientowane obiektowo. Mateusz Kołecki

Historia modeli programowania

Analiza i projektowanie aplikacji Java

Wzorce projektowe kreacyjne

Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016

Projektowanie logiki aplikacji

Wzorce projektowe. Wstęp

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Pojęcie wzorca projektowego Sposób opisu wzorców projektowych Notacja UML podstawowe diagramy zapisu wzorców projektowych

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

1) Wzorzec projektowy Adapter. Zastosowanie:

Plik pobrano z Tytuł: Wzorce projektowe, cz. 2 Strategy Ostatnia aktualizacja:

Budowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM

Programowanie i projektowanie obiektowe

PHP 5 język obiektowy

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Podstawy programowania III WYKŁAD 4

Rok akademicki: 2014/2015 Kod: IEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Programowanie obiektowe

Visual Basic.NET. Wzorce projektowe

Perspektywa obiektowości

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

PRZEWODNIK PO PRZEDMIOCIE

Zagadnienia projektowania aplikacji J2EE

Wprowadzenie niektórych zagadnień OOP oraz wzorce operacyjne

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Przykładowa implementacja

Programowanie obiektowe

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Wykład 8: klasy cz. 4

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Transkrypt:

Wprowadzenie do programowania aplikacji mobilnych dr Przemysław Juszczuk dr Przemysław Juszczuk

Trochę historii Idea wzorców projektowych wywodzi się jeszcze z wczesnych lat osiemdziesiątych ubiegłego wieku, gdzie podstawowym językiem programowania obiektowego był Smalltalk. Samo pojęcie wzorca pojawiło się jeszcze wcześniej - w roku 1977, gdzie Christopher Alexander stosował ten termin w odniesieniu do budynków i miast. Wzorce projektowe - definicja Wzorce projektowe (ang. Design patterns) powiązane są ściśle z programowaniem obiektowym. - wielokrotne stosowanie obiektu w różnych projektach oraz pomiędzy wieloma programistami. dr Przemysław Juszczuk

Rysunek: Krótkie przypomnienie dr Przemysław Juszczuk

Szablon wzorca nazwa wzorca - dobrana jest w taki sposób, aby szybko nasuwać skojarzenie z jego przeznaczeniem. Wszystkie stosowane nazwy powinny być anglojęzyczne. Oczywiście niektóre nazwy mogą być przetłumaczone na język polski bez powodowania niejednoznaczności. cel (określane także jako opis problemu) - pozwala wskazać sytuację, w jakiej należy stosować dany wzorzec projektowy. Czasami podawana jest także lista warunków, które powinny zostać spełnione, aby zastosowanie danego wzorca było możliwe. klasyfikacja i aliasy - aliasy to alternatywne nazwy wzorca. Natomiast klasyfikacja to nazwa jednej z dużych grup, do której należy dana struktura. dr Przemysław Juszczuk

Szablon wzorca II motywacja - przykładowy scenariusz opisujący zaistniały problem oraz sposób jego rozwiązania przy zastosowaniu zaproponowanego wzorca. opis struktury wzorca - jeden z najistotniejszych elementów przedstawiający jego graficzną reprezentację. Chodzi tutaj przede wszystkim o zakres powiązań pomiędzy danym wzorcem a klasami w postaci diagramu klas UML. konsekwencje - efekty oraz koszty zastosowania wzorca w danym projekcie. przykład - przykład kodu, w którym zastosowany został wybrany wzorzec. dr Przemysław Juszczuk

Wzorce kreacyjne Abstract factory; Builder; Prototype; Singleton; Wzorce kreacyjne umożliwiają opracowanie systemu, którego działanie jest niezależne od tego, jak obiekty są w nim tworzone i przechowywane. Zagadnienie to jest bardzo istotne w momencie, kiedy system oraz wymagania dotyczące systemu zaczynają się zmieniać. dr Przemysław Juszczuk

Wzorce strukturalne Adapter; Bridge; Decorator; Facade; Wzorce strukturalne umożliwiają opis sposobów konstrukcji struktur obiektowych. Udostępniają one mechanizmy umożliwiające łączenie obiektów w większe struktury. dr Przemysław Juszczuk

Wzorce czynnościowe (behawioralne) Chain of responsibility; Observer; Mediator; Visitor; Wzorce behawioralne są najbardziej ogólnym typem wzorców. Opisują one algorytmy i przydział odpowiedzialności w projekcie. Oprócz samych obiektów umożliwiają także zdefiniowanie powiązań oraz sposobów komunikacji pomiędzy nimi. dr Przemysław Juszczuk

Antywzorce Mushroom management - całkowite oddzielenie zespołu programistów od klienta (hodowla grzybów); nadmiernie rozciągnięta w czasie analiza funkcjonalności systemu; nieodpowiednio opracowany plan pracy (nierealne ramy czasowe projektu); zbyt duża liczba kluczowych elementów systemu - kamieni milowych; zbyt mała liczba kamieni milowych; brak zaimplementowanej funkcjonalności; system o skomplikowanej, nieczytelnej strukturze - trudny do modyfikowania; nieczytelny/zbyt ubogi interfejs użytkownika, gdzie pojedyncza kontrolka odpowiada za zbyt wiele funkcji; God object - przerzucenie zbyt dużej liczby funkcjonalności do jednej klasy (rozwiązanie - refaktoryzacja i extract method); dr Przemysław Juszczuk

Model - View - Controler model - klasy implementujące logikę biznesową (sposób i miejsce przechowywania danych, sposób dostępu do danych); widok - logika prezentacyjna (jak dane pochodzące z modeli mają zostać wyświetlone); kontroler - logika sterująca całą aplikacją. To właśnie w kontrolerze obsługiwane są wszystkie żądania użytkownika, które następnie delegowane są do odpowiednich metod Modelu. dr Przemysław Juszczuk

Rysunek: Model MVC dr Przemysław Juszczuk

Rysunek: Model MVVM dr Przemysław Juszczuk

Widok Zadaniem widoku jest wyświetlanie danych pełni on wyłącznie funkcję prezentacyjną. Nie powinien wykonywać żadnej logiki (biznesowej, czy związanej z przepływem screen ów). Model oraz ViewModel ViewModel stanowi klasę, która eksponuje model dla widoku. Czysty model, zawierający logikę biznesową, prawdopodobnie nie będzie nadawał się do użycia w widoku Założenia MVVM unikanie kodu w code-behind (kod odpowiedzialny za warstwę prezentacji jest oddzielony od kodu odpowiedzialnego za logikę biznesową); zdarzenia powinny zostać zastąpione komendami; ViewModel powinien implementować interfejs INotifyPropertyChanged; dane z widoku powinny być powiązane z właściwościami w ViewModel; dr Przemysław Juszczuk

Singleton Singleton jest wzorcem konstrukcyjnym, który gwarantuje nam, iż dana klasa będzie miała tylko jeden egzemplarz dostępny globalnie. Przykładem zastosowania tego wzorca jest sytuacja, kiedy to w systemie musimy zagwarantować, iż do obsługi danego elementu - np. menadżera plików, powstanie tylko jeden obiekt. Singleton - dostęp Wewnątrz wzorca definiowana jest statyczna operacja Instance umożliwiająca klientom dostęp do unikalnego egzemplarza klasy. Dostęp do egzemplarza klasy możliwy jest tylko i wyłącznie dzięki metodzie Instance. Singleton - zalety zapewnienie kontroli dostępu do jedynego egzemplarza; rozwinięcie koncepcji zmiennych globalnych; uminięcie problemu tworzenia wielu zmiennych globalnych. dr Przemysław Juszczuk

Rysunek: Singleton - przykład dr Przemysław Juszczuk

Iterator Jednym z najpopularniejszych przykładów wzorca behawioralnego jest Iterator. Umożliwia on sekwencyjny dostęp do elementów obiektu złożonego bez ujawniania jego struktury. Rysunek: Iterator - przykład dr Przemysław Juszczuk

Metoda szablonowa Zadaniem tego wzorca projektowego jest zdefiniowanie metody, będącej szkieletem algorytmu. W kolejnych podklasach szkielet algorytmu może być dokładnie definiowany. Sam wzorzec składa się przynajmniej dwóch klas - klasy bazowej, definiującej szablon (publiczna metoda templatemethod). W klasie bazowej znajdują się też metody prywatne/chronione stosowane w metodzie templatemethod. Klasa klienta definiuje na nowo wybraną metodę (lub wszystkie metody) z klasy bazowej. dr Przemysław Juszczuk

Inne wzorce Adapter - umożiwia połączenie interface ów dwóch klas; dodanie nowych interface ów zbiorom klas; dodanie dodatkowej warstwy abstrakcji. Bridge - Oddzielenie interfejsu i implementacji obiektu, tak aby mogły zmieniać się niezależnie od siebie. Fasada - Dostarczenie jednorodnego interfejsu wyższego poziomu do zbioru różnych interfejsów w systemie; Ukrycie złożoności podsystemów przed klientem. Memento - Zapamiętanie, przechowanie i odtwarzanie wewnętrznego stanu obiektu: Memento przechowuje stan zapisany przez Originator; Originator odtwarza stan na podstawie obiektu Memento; Caretaker przechowuje obiekty Memento. dr Przemysław Juszczuk