Skip to content

Design Patterns

Bart van Vliet edited this page Jan 21, 2019 · 10 revisions

Voor de Android applicatie en de API hebben we gekozen voor hieronder benoemde Design Patterns ( ontwerpprincipes ).

Android applicatie - MVP

Voor de Android applicatie is de keuze gemaakt voor MVP ( Model View Presenter ), de reden hiervoor is omdat we veel onderzoek hebben gedaan naar wat andere normaal voor android gebruiken en toen kwam er uit dat de meerderheid MVP gebruikt ook worden de android examples die google aangeeft in MVP gedaan. Ook is MVP een afleiding van MVC ( Model View Controller ) wat bij ons wel al bekend maar de reden waarom we deze niet gebruiken is omdat deze niet helemaal ideaal binnen het ontwikkelen van een android applicatie valt.

Dus toen hebben we naar MVP gekeken en kwamen wel tot de conclusie dat dit fijn voor ons werkt en ook onszelf duidelijkheid geeft met wat we aan het doen zijn. Binnen dit ontwerpprincipe werkt de applicatie als volgt:

Model

De model is een interface die de gegevens definieert die moeten worden weergegeven of waarop wordt gehandeld in de gebruikersinterface.

View

De view is een passieve interface die gegevens weergeeft (het model) en gebruikerscommando's (gebeurtenissen) naar de Presenter stuurt om op die gegevens in te werken.

Presenter

De Presenter reageert op het model en de view. Het haalt gegevens op uit repositories (het model) en formatteert het voor de weergave in de view.

API - MVCS

Bij de API hebben we gekozen voor MVCS ( Model View Controller Service ).

Binnen dit ontwerpprincipe werkt de applicatie als volgt:

Model

Met het model (of data model of gegevensmodel) wordt beschreven hoe de gegevens in de API gestructureerd zijn. Dit zijn bijvoorbeeld de gebruikers, familie of lijsten.

View

(!!! Niet gebruikt aangezien we een API hebben ontwikkeld !!!) Presenteert de data aan de gebruiker, de view weet hoe hij bij de informatie van het model komt. Maar hij weet niet hoe hij de data moet aanpassen.

Controller

De controller is waar de requests binnenkomen. Deze roept vervolgens de service aan om bepaalde acties uit te voeren bijvoorbeeld:

GET /users --> this.userService.find()
^^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^
De API call    |
               Het aanroepen van de service

Service

De service is waar alles samenkomt, hierin worden alle acties gedaan.

Bijvoorbeeld: Gebruiker aanmaken (UserController -> UserService -> UserModel)

De service dient hierin als tussenlaag tussen de controller en het model. In deze service word gebruik gemaakt van de modellen om nieuwe dingen aan te maken, instanties van het model te vinden en/of alle resultaten op te halen.

Clone this wiki locally