donderdag 22 november 2012

MVC Workshop: Een model ontwerpen


"Wie een MVC model ontwerpt, denkt aan informatiestromen."
                                                                                      — Sam Rain
Wie een software oplossing wilt ontwerpen, zal vaak de voorkeur hebben aan de MVC strategie: Model-View-Controller ontwerpen zijn populair omdat ze structuur geven aan een applicatie. De 'M’ uit MVC staat voor model — het deel van een oplossing dat verantwoordelijk is als de abstracte laag tussen de databanken van informatie en de applicatie. In dit artikel leggen we de loep over het ontwerpen van een 'model'.
Applicaties hebben meerdere controllers, views en dus ook models. Informatie is losgekoppeld in industriële toepassingen — ze is beschikbaar via de 'database'. Echter is de ene database de andere niet en is databasespecialisme een expertise die zeer afhankelijk is van de omgeving waarin informatie wordt opgeslagen. Een model hoeft niet perse een reflectie te zijn van de tabellen in de database — ze wordt ontworpen voor de informatie die de applicatie nodig heeft.
Wanneer een controller het verzoek doet aan een model om een artikel op te vragen, voert het model de nodige werk uit dat speciaal gericht is aan de database. Daarom is een model ook een abstractie — het transformeert gegevens van en naar de database, zodat de controller niet hoeft te worden aangepast wanneer er 'onder de motorkap' veranderingen plaatsvinden in de database.
Een 'model' is daarom eigenlijk het beste te omschrijven als een mal — het is de 'gegevensstructuur' die werkt als een container voor controllers; een model werkt met de technische onderdelen van een applicatie. Wie een model ontwerpt zal dus moeten beginnen met een inventarisatie van de volgende punten:
• Welke informatie is aanwezig in de database?
• Welke informatie heeft de applicatie nodig?
• Zijn er speciale bewerkingen nodig voor de informatie gebruikt kan worden?
• Hoe dient de informatie te worden aangeleverd?
 Stel, we nemen een simpel ontwerp voor een model die ontworpen moet worden voor artikelen. We noemen daarom dit ontwerp het 'Artikel Model'. Het 'Artikel Model' moet artikelen kunnen opvragen, toevoegen, aanpassen, verwijderen. Omdat het Artikel Model werkt met een database, is het handig om te weten hoe de artikelen in de database worden opgeslagen. Databases werken met CRUD bewerkingen — dit zijn de Create, Read, Update en Delete opdrachten waarmee databases tabellen beheren. Echter zijn deze vanzelfsprekend voor modellen. In het ontwerp is het belangrijk om een duidelijk onderscheid te maken van de types informatie. Een model ontwerpen in de diepte vereist dus de nodige ervaring met databases en datatypes.
Natuurlijk is dit een voorbeeld wat niet gelijk staat aan de industrie. Echter is het de bedoeling van een ontwerp dat het vooral duidelijk is wat er qua informatie beschikbaar is dat een model moet 'aanleveren'.
©SamRain
Model Ontwerpen

Geen opmerkingen:

Een reactie posten