Een van de design patterns om te komen tot onderhoudbare software is het layer pattern. Hieronder volgt een voorbeeld van een toepassing van het pattern in de GAMS applicatie:
Het lagenmodel bestaat uit 4 tot 6 lagen.
# Als eerste laag hebben we de *presentatielaag*, dit is de User Interface.Deze laag moet gesplitst worden voor client en server.
# De eerste optionele laag kan tussen de prestatielaag en de businesslaag worden gezet, en deze laag heet de *servicelaag*. Deze laag wordt gebruikt om gegevens van de presentatielaag naar de business laag te sturen via het http protocol.
# Vervolgens komt de *businesslaag*, hierin worden gegevens benaderd die worden verzameld uit meerdere classes van het domeinmodel.Daarnaast worden in deze laag ook de business rules vastgelegd.
# De tweede optionele laag kan tussen de domeinlaag en de datalaag worden gevoegd, en heet de *dataAccesslaag*. Deze laag wordt gebruikt om de data die van het domeinmodel binnenkomt door te geven aan de database, en ze op de juiste plaats op te slaan.
# Als derde laag bevindt zich in het lagenmodel de *domeinlaag*, waar alle classes zich bevinden en waar deze ook aangeroepen kunnen worden. In deze laag worden ook de validaties van de velden vastgelegd.
# De vierde laag in het lagenmodel is de *datalaag*, hierin wordt alle data opgeslagen.
!lagenmodel.png|border=1!
h2. Voorbeeld projecttoepassing.
In het project GAMS van projectgroep HANWorks wordt gebruikt gemaakt van een lagenmodel. In de backend van de applicatie is dit goed terug te zien:
!lagenapp.png|border=1!
Het lagenmodel bestaat uit 4 tot 6 lagen.
# Als eerste laag hebben we de *presentatielaag*, dit is de User Interface.Deze laag moet gesplitst worden voor client en server.
# De eerste optionele laag kan tussen de prestatielaag en de businesslaag worden gezet, en deze laag heet de *servicelaag*. Deze laag wordt gebruikt om gegevens van de presentatielaag naar de business laag te sturen via het http protocol.
# Vervolgens komt de *businesslaag*, hierin worden gegevens benaderd die worden verzameld uit meerdere classes van het domeinmodel.Daarnaast worden in deze laag ook de business rules vastgelegd.
# De tweede optionele laag kan tussen de domeinlaag en de datalaag worden gevoegd, en heet de *dataAccesslaag*. Deze laag wordt gebruikt om de data die van het domeinmodel binnenkomt door te geven aan de database, en ze op de juiste plaats op te slaan.
# Als derde laag bevindt zich in het lagenmodel de *domeinlaag*, waar alle classes zich bevinden en waar deze ook aangeroepen kunnen worden. In deze laag worden ook de validaties van de velden vastgelegd.
# De vierde laag in het lagenmodel is de *datalaag*, hierin wordt alle data opgeslagen.
!lagenmodel.png|border=1!
h2. Voorbeeld projecttoepassing.
In het project GAMS van projectgroep HANWorks wordt gebruikt gemaakt van een lagenmodel. In de backend van de applicatie is dit goed terug te zien:
!lagenapp.png|border=1!