Ik wil gebruik gaan maken van Data Transfer Objects (DTO's) om data aan de user interface te geven.
Ik heb bijvoorbeeld een class dtoDossier en een class dtoDocument. In het dtoDossier zit een verzameling documenten en nog wat andere attributen. Er zitten geen methods in, alleen data:
Als ik een document wil toevoegen aan het dossier dan kan dat via de businesslogic. Ik stel me zo voor dat ik een dossier en een document doorgeef aan de operatie VoegtoeDocument:
De user interface geeft dus aan: ik heb dit dossier en daar moet dit document in terecht komen.
De businesslogic gaat dan zelf bekijken of het document wel aan het dossier mag/kan worden toegevoegd. En ook wordt er bepaald of er wel documenten in het dossier terecht mogen/kunnen komen etc.
Het probleem:
Omdat in dtoDossier een ArrayList met dtoDocumenten zit, kan de user interface zomaar een dtoDocument gaan toevoegen aan de verzameling. Dit wil ik niet, want alle checks op businesslogic worden daarmee omzeild.
Ik kan echter ook geen read-only verzameling gebruiken, want die kan ik niet laten vullen door de businesslogic.
Heeft iemand hier al ervaring mee en een idee voor een oplossing?
Ik heb bijvoorbeeld een class dtoDossier en een class dtoDocument. In het dtoDossier zit een verzameling documenten en nog wat andere attributen. Er zitten geen methods in, alleen data:
C#:
1
2
3
4
5
6
7
8
| dtoDossier ========== + ArrayList Documenten + string Eigenaar + date CreatieDatum + string Status + string Locatie + string LaatsteActie |
Als ik een document wil toevoegen aan het dossier dan kan dat via de businesslogic. Ik stel me zo voor dat ik een dossier en een document doorgeef aan de operatie VoegtoeDocument:
C#:
1
2
3
4
5
6
| blDossier ========== + VoegtoeDocument (Dossier, Document) + Verstuur (Dossier) + SluitAf (Dossier) ... |
De user interface geeft dus aan: ik heb dit dossier en daar moet dit document in terecht komen.
De businesslogic gaat dan zelf bekijken of het document wel aan het dossier mag/kan worden toegevoegd. En ook wordt er bepaald of er wel documenten in het dossier terecht mogen/kunnen komen etc.
Het probleem:
Omdat in dtoDossier een ArrayList met dtoDocumenten zit, kan de user interface zomaar een dtoDocument gaan toevoegen aan de verzameling. Dit wil ik niet, want alle checks op businesslogic worden daarmee omzeild.
Ik kan echter ook geen read-only verzameling gebruiken, want die kan ik niet laten vullen door de businesslogic.
Heeft iemand hier al ervaring mee en een idee voor een oplossing?