-
Notifications
You must be signed in to change notification settings - Fork 0
Design Patterns
Voor de Android applicatie en de API hebben we gekozen voor hieronder benoemde Design Patterns ( ontwerpprincipes ).
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.
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.
Dit project is gemaakt voor het Avans.
GetFood is gemaakt door Bart van Vliet en Wesley van der Kop.