Ik vroeg me af hoe je best een domain klasse die gebruik maakt van een state pattern persist naar een databank ofzo.
Stel ik heb een taak object die zich in verschillende staten kan bevinden: nieuw, bezig, afgewerkt,... (adhv lokale variabele weet ik in welke staat mijn taak zich bevindt) elk van deze staten is een implementatie van een staat interface die de mogelijke overgangsmethoden bevat.
Hoe bewaar je nu deze taak in je databank, zodat wanneer je deze terug opghaalt je terug in de oorspronkelijke staat terecht komt ?
Je kan bv met constanten werken (1 = Nieuwe staat, 2 = bezige staat, ...) maar het probleem is dat je dan ergens een logica moet hebben die weet dat constante 1 uit de datanbank overeenkomt met het nieuwe staat object, constante 1 overeenkomt met bezig staat object,... en dan 1 van deze taken in mijn taak object steekt.
Als ik die logica in mijn taak object zelf steek helpt dit me niet zoveel vooruit qua flexibiliteit, zou ik hiervoor een soort object gebruiken (klasse met verschillende factory methods) die mij adhv een constante het juiste staat object teruggeeft wat ik dan in mijn taak object kan setten ?
of hoe gaan jullie met dergelijke problemen om ? Om het nog wat concreter te maken: ik maak gebruik van hibernate en zou bv liefst kunnen een get doen in mijn DAO op ID van mijn Taak object en van zodra ik dit object terug krijg zou de taak zich in de juiste staat moeten bevinden...
Stel ik heb een taak object die zich in verschillende staten kan bevinden: nieuw, bezig, afgewerkt,... (adhv lokale variabele weet ik in welke staat mijn taak zich bevindt) elk van deze staten is een implementatie van een staat interface die de mogelijke overgangsmethoden bevat.
Hoe bewaar je nu deze taak in je databank, zodat wanneer je deze terug opghaalt je terug in de oorspronkelijke staat terecht komt ?
Je kan bv met constanten werken (1 = Nieuwe staat, 2 = bezige staat, ...) maar het probleem is dat je dan ergens een logica moet hebben die weet dat constante 1 uit de datanbank overeenkomt met het nieuwe staat object, constante 1 overeenkomt met bezig staat object,... en dan 1 van deze taken in mijn taak object steekt.
Als ik die logica in mijn taak object zelf steek helpt dit me niet zoveel vooruit qua flexibiliteit, zou ik hiervoor een soort object gebruiken (klasse met verschillende factory methods) die mij adhv een constante het juiste staat object teruggeeft wat ik dan in mijn taak object kan setten ?
of hoe gaan jullie met dergelijke problemen om ? Om het nog wat concreter te maken: ik maak gebruik van hibernate en zou bv liefst kunnen een get doen in mijn DAO op ID van mijn Taak object en van zodra ik dit object terug krijg zou de taak zich in de juiste staat moeten bevinden...
"Live as if you were to die tomorrow. Learn as if you were to live forever"