1 / 18

MVC architektura

MVC architektura. User. Enter data / control application. See. View. Controller. Update. Manipulate. Model. MVC architektura. User. See. Enter data / control application. See. View. View. Controller. Update. Update. Manipulate. M d (domain model) + M a (application model).

lewis-dixon
Download Presentation

MVC architektura

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MVC architektura User Enter data / control application See View Controller Update Manipulate Model

  2. MVC architektura User See Enter data / control application See View View Controller Update Update Manipulate Md(domain model) + Ma (application model)

  3. Vícevrstváarchitektura • Multi-layer nebo multi-tier ?

  4. Vícevrstváarchitektura • Multi-layer nebo multi-tier ? • Multilayer • Logickáorganizacevrstev – nesouvisí s fyzickýmumístěnímna tom čionomstroji • Multi-tier • Fyzickáorganizacevrstev – souvisí s fyzickýmumístěnímnarůznýchpočítačích • Zobecněníarchitekturyklient-server • 3-tier: tlustýklient (desktop), doménoválogika (aplikační server), databáze (databázový server)

  5. 3 layer architecture • Presentation layer • Domain logic layer • Data source layer

  6. n layer architecture • Presentation layer (v případětenkéhoklienta: controller + templates) • Service layer (službytvořící API k doménovélogice + agregace) • Data access layer • Domain logic layer (bussinessobjekty) • Persistence layer (obvyklerelační DB, transparentní)

  7. Striktní/relaxovanávícevrstvováarchitektura • Striktní: vyššívrstvapřistupujepouze k bezprostředněnižšívrstvě • Příklad: ISO/OSI síťový model (7 vrstev) • Relaxovaná: vyššívrstvapřistupuje k nižšímvrstvám ======================================== • Nižšívrstva v žádnémpřípaděnepřistupuje k vyššímvrstvám (ani je nezná). Pokudano, jedná se o spaghetti-code.

  8. Organizacedoménovélogiky • Transaction script • Business objektobsahujespíše data nežlogiku • Logikacentralizována do jedné/několikatříd • Transakčnímuskriptu se poskytnou business objektykezpracování • Přirozšiřovánífunkcionality se musítransakčnískriptmodifikovat

  9. Organizacedoménovélogiky • Transaction script • Domain Model • Business objektyobsahují data ilogiku • Doménoválogikarozptýlenamezi business objekty • Přehlednější z hlediskaobjektovéhonávrhu • Přirozšiřovánífunkcionality se vytvoří (odvodí) novýtyp business objektu, kterýposkytujepříslušnoufunkcionalitu

  10. Organizacedoménovélogiky • Transaction script • Domain Model • Table Module • Organizacedoménovélogikypoplatnástruktuředatabáze • Logikasoustředěna v singletonech per table • Výsledkemzpracovánínení business objekt, ale result set • Můžebýtvýhodné pro některéframeworkypracující s result sety ??? • Neodpovídápřílišzásadámobjektovéhonávrhu

  11. Organizacedoménovélogiky • Transaction script • Domain Model (preference) • Table Module

  12. Inversion of control

  13. Inversion of control

  14. Dependency injection Způsob, jakrealizovatIoC

  15. Service Layer • Typickyjednoduché API naddoménovoulogikou • Organizovánodle business transakcíodpovídajícíchpřípadůmužití • Zahrnujezabezpečení • Extrémy: • Pouhá(tenká) fasáda, doménoválogikasoustředěna v nižšívrstvě • Sadatransakčníchskriptůobsahujícíchvětšinudoménovélogiky, nížšívrstvapouze data wrappery • Někdemezi je controller-entity architektura • Kontrolery (služby) jsoutransakčnískriptytvořící API

  16. Service Layer • EJB • Service layer realizovánapomocí Session beans • Stateless • Statefull (pozordvěinjekce = 2 různé instance, každámásvůjstav) • Dependency Injection možnápouze pro Session beans (service layer), nikoliv pro Entity Beans (business objects), proto service layer je spíšetransakční script a business objects jsouspíšewrapperydatovýchobjektů

  17. Objektově-relačnímapování • JPA 2.0, Hibernate • Separace SQL přístupu od doménovélogiky • Organizacevzhledemkestruktuředatabáze • Row Data Gateway – instance per řádektabulky • Table Data Gateway – instance per tabulka – mámetodyzapouzdřující SQL dotazy, vracíResultSet (někdykolekceuloženýchprocedur) • Oddělenídoménovélogiky od obsluhy persistence • Active Record – objektobsahuje (dědí) metody pro select/insert/update/delete plus metodyobsahujícídoménovoulogiku • Data Mapper – odděluje business objekty (jejichmetody = výhradnědoménoválogika) od manipulace s databází (tuposkytuje Data Mapper)

  18. Objektově-relačnímapování • Preference • Row Data Gateway • Data Mapper

More Related