
Een BatchProcess heeft als intake 1 of meerdere batches en produceerd één batch… die batch kan weer samen met andere batches in een nieuw batchprocess.
Zodra ik een batch uit m’n database en daar een object van maak, wordt tevens een BatchProcess object voor aangemaakt (relatie aanmaken), maar dat BatchProcess object probeert de “aanroepende batch” aan te maken… het BatchProcess maakt ook een output batch aan die weer een proces… een enorme ketting met:
Batch -> proces: 0:n (is gebruikt in)
Batch -> proces: 1:1 (is geproduceerd door)
Proces -> batch 1:n (heeft gebruikt)
Proces -> batch 1:1 (heft geproduceerd)
Relaties. Iemand een suggestie hoe dit op te lossen? Ik heb zelf wel wat ideetjes, maar wellicht zoek ik het in de verkeerde hoek. Al bladerende in Fowler’s boek lijkt me een Value Holder (Value Object) pattern wel aardig. Zoiets als laadt een batch, value holders voor UsedInProcess en ProducedByProcess. Op de eerste methode aanroep een batchproces aanmaken met een value holder voor UsedBatches en ProducedBatch.
Van de andere kant… de ketting moet ik toch “een keer inladen”, dus waarom de implementatie vermoeilijken met een soort van lazy load.
Bedankt voor de reacties iig.