SlideShare una empresa de Scribd logo
1 de 31
Action Domain Response
Michał Łukaszewski
Xerox
Trygve Reenskaug
MVC
MVC
Przyjmuje dane wejsciowe i
reaguje na akcje
użytkownika zarządzając
aktualizację modelu lub
widoku
MVC
Przyjmuje dane wejsciowe i
reaguje na akcje
użytkownika zarządzając
aktualizację modelu lub
widoku
Opisuje sposób
reprezentacji danych w
ramach GUI
MVC
Przyjmuje dane wejsciowe i
reaguje na akcje
użytkownika zarządzając
aktualizację modelu lub
widoku
Opisuje sposób
reprezentacji danych w
ramach GUI
Reprezentuje problem lub
logikę aplikacji
MVC
• Composite pattern
• Observer pattern
• Strategy pattern
MVC
• Composite pattern
• Observer pattern
• Strategy pattern
Gang of Four
• Factory method pattern
• Decorator pattern
MVC
• Composite pattern
• Observer pattern
• Strategy pattern
Gang of Four
• Factory method pattern
• Decorator pattern
patrz też: Frank Buschmann, Kevlin Henney, Douglas C. Schmidt: Pattern-oriented software architecture: On patterns and pattern languages
Volume 5. Wiley, 2007, s. 178-179. ISBN 978-0471486480. (ang.)
MVC
• MVP
• PAC
• HMVC
• Passive View
• MVVM
MVC
MVC
MVC
ADR
ADR
ADR
• Action
Każda akcja jest reprezentowana przez pojedynczą klasę lub domknięcie
(Closure)
ADR
• Action
Każda akcja jest reprezentowana przez pojedynczą klasę lub domknięcie
(Closure)
Wchodzi w interakcję tylko z Domeną
ADR
• Responder
Każda akcja komunikuje się z konkretnym Responderem.
ADR
• Responder
Każda akcja komunikuje się z konkretnym Responderem.
Dany Responder może być używany przez więcej niż jedną akcję.
ADR
• Domain
Logika biznesowa
ADR
• Domain
Logika biznesowa
Zbliżone do koncepcji "Model"
ADR
• Domain
Logika biznesowa
Zbliżone do koncepcji "Model"
Brak powiązań z Responderem
MVC
MVC
ADR
Podsumowując
MVC i ADR to wzorce dla GUI, nie architektura aplikacji
Podsumowując
MVC i ADR to wzorce dla GUI, nie architektura aplikacji
ADR to alternatywa dostosowana do HTTP (i PHP w szczególnosci)
Podsumowując
MVC i ADR to wzorce dla GUI, nie architektura aplikacji
ADR to alternatywa dostosowana do HTTP (i PHP w szczególnosci)
Uwzględniająca PSR-7
Podsumowując
MVC i ADR to wzorce dla GUI, nie architektura aplikacji,
ADR to alternatywa dostosowana do HTTP (i PHP w szczególnosci),
Uwzględniająca PSR-7,
ale nie zbawiająca swiat.
Literatura
• http://pmjones.io/adr/
• https://lostechies.com/derekgreer/2007/08/25/interactive-application-architecture/
• http://paul-m-jones.com/archives/6079
• http://paul-m-jones.com/archives/5979
• http://paul-m-jones.com/archives/6172
• http://paul-m-jones.com/archives/6142
• http://paul-m-jones.com/archives/6129
• http://paul-m-jones.com/archives/6119
• http://paul-m-jones.com/archives/6119
• https://mwop.net/blog/2015-01-26-psr-7-by-example.html
• http://mtdowling.com/blog/2014/07/03/a-case-for-higher-level-php-streams/
• http://evertpot.com/psr-7-issues/
• http://www.php-fig.org/psr/psr-7/
• http://stackoverflow.com/questions/11029758/do-my-mvc-components-really-all-need-references-to-each-other
• http://martinfowler.com/eaaDev/uiArchs.html#ModelViewController
• http://confreaks.tv/videos/rubymidwest2011-keynote-architecture-the-lost-years

Más contenido relacionado

Más de Michal Lukaszewski

How we built a tools stack for the benchmarking AI and what happened next
How we built a tools stack for the benchmarking AI and what happened nextHow we built a tools stack for the benchmarking AI and what happened next
How we built a tools stack for the benchmarking AI and what happened nextMichal Lukaszewski
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówMichal Lukaszewski
 
How to fix a code to not corrupt an application
How to fix a code to not corrupt an applicationHow to fix a code to not corrupt an application
How to fix a code to not corrupt an applicationMichal Lukaszewski
 
Distributed Systems @ Code Europe
Distributed Systems @ Code EuropeDistributed Systems @ Code Europe
Distributed Systems @ Code EuropeMichal Lukaszewski
 
Budowanie aplikacji PHP bez użycia frameworków
Budowanie aplikacji PHP bez użycia frameworkówBudowanie aplikacji PHP bez użycia frameworków
Budowanie aplikacji PHP bez użycia frameworkówMichal Lukaszewski
 
Domain Events in Distributed Architecture
Domain Events in Distributed ArchitectureDomain Events in Distributed Architecture
Domain Events in Distributed ArchitectureMichal Lukaszewski
 
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadkuTechnologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadkuMichal Lukaszewski
 

Más de Michal Lukaszewski (9)

How we built a tools stack for the benchmarking AI and what happened next
How we built a tools stack for the benchmarking AI and what happened nextHow we built a tools stack for the benchmarking AI and what happened next
How we built a tools stack for the benchmarking AI and what happened next
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędów
 
How to fix a code to not corrupt an application
How to fix a code to not corrupt an applicationHow to fix a code to not corrupt an application
How to fix a code to not corrupt an application
 
Distributed Systems @ Code Europe
Distributed Systems @ Code EuropeDistributed Systems @ Code Europe
Distributed Systems @ Code Europe
 
Budowanie aplikacji PHP bez użycia frameworków
Budowanie aplikacji PHP bez użycia frameworkówBudowanie aplikacji PHP bez użycia frameworków
Budowanie aplikacji PHP bez użycia frameworków
 
Domain Events in Distributed Architecture
Domain Events in Distributed ArchitectureDomain Events in Distributed Architecture
Domain Events in Distributed Architecture
 
Wydajność i optymalizacja
Wydajność i optymalizacjaWydajność i optymalizacja
Wydajność i optymalizacja
 
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadkuTechnologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku
 
Solid vs php
Solid vs phpSolid vs php
Solid vs php
 

Action Domain Response

Notas del editor

  1. Model View Presenter - prezentr posiada pewną wiedzę o GUI i mapuje akcje na zmiany widoku lub modelu Presentation Abstract Controller - hierarchiczne drzew agentów "Control" z przypisanymi im czesciami Present i Abstraction Herarchical MVC - PAC oparty o MVC Passive View - zerwane powiązania modelu z widokiem MV ViewModel - czesc przezentacji ma swój model; zawiera logikę związaną z reprezentacją danych.