Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Pattern Oriented Software Architecture

Podobné prezentace


Prezentace na téma: "Pattern Oriented Software Architecture"— Transkript prezentace:

1 Pattern Oriented Software Architecture
1

2 Interaktivní systémy – popis problému
Chování řízeno vstupy uživatele GUI Webové aplikace API Součásti systému Funkční jádro, data („model“) Prezentační vrstva („viewer“) Vstupy uživatele („controller“) Požadované vlastnosti Nezávislost součástí Přidávání a změna frontendů Nativní GUI Webové rozhraní Mobilní aplikace ale i odlišné: GUI pro začátečníky GUI pro profesionály, klávesové zkratky 2

3 Model – View - Controller
Data + logika aplikace View Pohled na model prezentovaný uživateli Controller Přijímá vstupy uživatele Při události volá funkce modelu Při vytváření se všechny pohledy a controllery zaregistrují u modelu Viz návrhový vzor Observer model views controller 3

4 MVC – obsluha události NV publisher-subscriber
change-propagation mechanism např. změna menu nebo deaktivace checkboxu 4

5 MVC – inicializace 5

6 MVC – souvislosti, varianty, použití
NV View handler Dynamické vytváření pohledů Document – view Přibližuje View a Controller Pozitiva Více pohledů na stejný dokument současně Synchronizované pohledy (multiuser edit) Nativní look & feel Application framework Problémy Přidaná komplexita Příliš mnoho updatů viewů Těsná závislost na interfacu controlleru (srovnej NV Command Processor) Implementace MVC VC na webu – šablonovací systémy (př. Smarty) AngularJS a spol. – část VC na klientovi Nette Framework (PHP) 6

7 Presentation-Absctraction-Control
Presentation-abstraction-control Stromová hierarchie kooperujících agentů Prezentační a abstrakční části agentů zcela oddělené Abstrakční část Data a aplikační logika Prezentační část Zobrazení dat uživateli Control Komunikace s ostatními agenty Komunikace prezentační a abstrakční části Zpracování vstupů uživatele Rozdíl proti MVC Agentů je mnoho, MVC je jeden „MVC Model“ Zdroj: wikipedia „MVC View“ „MVC Controller“ 7

8 PAC – uspořádání agentů
Top-level agents Jádro funkcionality Přístup k externím datům Globální části jako hlavní menu Intermediate-level agents Koordinace bottom-level agentů Konverze dat Bottom-level agents Komponenty, se kterými uživatel přímo pracuje Třeba přímo okénka nebo obrázky Rozdělení na agenty komunikující s uživatelem a na agenty zpracovávající data 8

9 PAC – příklad 9

10 PAC – příklad (vytvoření grafu)
10

11 dekompozice, rozšiřitelnost
PAC - vlastnosti Dynamická tvorba hierarchie Distribuované prostředí Komplikované, paralelní víceuživatelské systémy Agent jako vlákno/proces Související NV: Proxy – komunikace se vzdálenými agenty Forwarder-Receiver, Client-Dispatcher-Server – lokální komunikace Je třeba najít kompromis mezi jemností dekompozice systému a efektivitou komunikace mezi agenty Komunikace probíhá jen s přímo propojenými agenty Ještě závažnější, pokud jsou agenti distribuovaní V praxi se používá mnohem méně než např. MVC Komplexita návrhu Příliš velká režie spojená s komunikací CMS Drupal dekompozice, rozšiřitelnost komplexita návrhu 11

12 Command processor Účel Kategorie Související vzory Využití
Oddělení požadavku a jeho zpracování Commandy mohou být generovány GUI, klávesovými zkratkami, pomocí API… CP obstarává frontu Commandů, plánuje vykonávání a může spravovat i Undo Kategorie Management – zpracování objektů/služeb/komponent obdobného druhu Související vzory Command CP se navíc stará o správu command objektů Memento - při implementaci Undo AbstractFactory, Prototype, Builder - výroba Commandů Využití Aplikace s více UI Undo/Redo Asynchronní požadavky na pozadí (stahování, transformace obrázku…) Paralelizace (vykonávání více Commandů najednou) 12

13 Command processor – návrh
Struktura Součásti Controller dostane požadavek na akci, vytvoří konkrétní Command Controller předá objekt Command Command processoru Command processor spustí Command a zařadí ho do zásobníku provedených akcí Command se provede př. textový editor, příkaz na kapitalizaci výběru 13

14 Command processor – undo
Klient zavolá příkaz „Undo” - Controller zavolá „Undo“ přímo na Command processoru Obdobně třeba pro Redo Command processor provede Undo na Commandu z vrcholu zásobníku provedenyćh akcí a smaže tento Command ze zásobníku Takto lze implementovat i Transaction/Rollback 14

15 Command processor Testy Problémy
Unit testy a regresní testy vkládáním Commandů do Command procesoru Problémy Oboustranná komunikace Callbacky Spousta tříd Commandů u aplikací s hodně funkcemi Hierarchie Commandů „Makro“ commandy 15

16 View handler Účel Kategorie Související vzory Využití
Poskytuje uživateli různé pohledy nad stejnými daty Úpravy, synchronizace a správa jednotlivých pohledů Jednotlivé pohledy by na sobě měly být navzájem nezávislé Kategorie Management Související vzory View handler je vlastně Abstract factory – vytváří pro klienta pohledy Mediator – sám se stará o koordinaci mezi pohledy Využití Oddělení prezentační vrstvy od funkční MVC Grafický editor Více oken stejného obrázku s různým zoomem, náhled tisku 16

17 View handler Dynamika Klient požádá View handler o vytvoření nového pohledu View handler inicializuje nový pohled a předá mu jeho Supplier (což je ten otevřený dokument, obrázek…) View handler také umí vylistovat pohledy a přepnout vybraný pohled na popředí, přesouvat je nebo hromadně refreshnout Pohled se už dále baví jen se Supplierem Supplier notifikuje všechny pohledy, pokud se něco změnilo putData update 17

18 View handler Klady Problémy Pohledy mají jednotný interface
Správa pohledů: tiling, cascade Problémy Pro systém bez komplikovaných pohledů možná až příliš mnoho abstrakce 18


Stáhnout ppt "Pattern Oriented Software Architecture"

Podobné prezentace


Reklamy Google