Ik ben mijn manier van denken en de manier van applicatie opbouw wat meer Domein gericht aan het opbouwen. Hiervoor had ik graag eens een oefening met jullie samen uitgewerkt.
Stel het volgende scenario (aangepaste verse uit een use case):
We hebben een toepassing die kuisvrouwen beheert, een kuisvrouw gaat schoonmaken bij verschillende klanten. Wanneer een kuisvrouw bij een klant schoongemaakt heeft wordt hiervoor een prestatie geregistreerd (dit is dus een een link tussen klant, kuisvrouw en tijdstip met datum, + andere properties). Een kuisvrouw kan nu per dag verschillende klanten doen. Wat we nu moeten weten is de totale afstand die een kuisvrouw per dag doet bij het pendelen tussen de verschillende klanten.
Hiervoor heb ik in pseudocode volgende opstelling:
vanuit mijn servicelaag ga ik nu dus AfstandCalculator gebruiken om de totale dagafstand van de kuisvrouw te bereken. (afstandcalulator is een singleton uit de spring application context, evenals, prestatieDAO en afstandService)
Hoe zouden jullie hier een meer domein model achtige oplossing van maken ?
Zou ik de berekening van afstanden op prestatie niveau moeten laten gebeuren ?
ik kom er niet echt hoe ik dit zo clean mogelijk kan oplossen
Stel het volgende scenario (aangepaste verse uit een use case):
We hebben een toepassing die kuisvrouwen beheert, een kuisvrouw gaat schoonmaken bij verschillende klanten. Wanneer een kuisvrouw bij een klant schoongemaakt heeft wordt hiervoor een prestatie geregistreerd (dit is dus een een link tussen klant, kuisvrouw en tijdstip met datum, + andere properties). Een kuisvrouw kan nu per dag verschillende klanten doen. Wat we nu moeten weten is de totale afstand die een kuisvrouw per dag doet bij het pendelen tussen de verschillende klanten.
Hiervoor heb ik in pseudocode volgende opstelling:
Java:
1
2
3
4
5
6
7
8
9
10
11
| public class AfstandCalculator { private PrestatieDAO prestatiesDAO = null; private AftandService afstandService = null; public double berekenAfstandOpDag(Kuisvrouw kuisvrouw, Datum dat) { List prestaties = prestatieDAO.zoekprestatiesVoorKuisVrouw(kuisvrouw); return berekenAfstandTussenPresatiesEnGebruikAfstandService(prestaties, afstandService); } } |
vanuit mijn servicelaag ga ik nu dus AfstandCalculator gebruiken om de totale dagafstand van de kuisvrouw te bereken. (afstandcalulator is een singleton uit de spring application context, evenals, prestatieDAO en afstandService)
Hoe zouden jullie hier een meer domein model achtige oplossing van maken ?
Zou ik de berekening van afstanden op prestatie niveau moeten laten gebeuren ?
Java:
1
| prestatie.berekenAfstandTotPrestatie(anderePrestatie) |
ik kom er niet echt hoe ik dit zo clean mogelijk kan oplossen
"Live as if you were to die tomorrow. Learn as if you were to live forever"