Het volgende probleem zullen jullie allemaal wel kennen:
Je het je domain model en dit domain model moet pesistable gemaakt worden dus moet er een id, version en meestal nog een creation en modification date op.
Nu zijn er dat ik weet 3 methodes met alle 3 hun voor en nadelen.
De eenvoudigste is gewoon een abstract class PersitableObject maken en uw domain die laten extenden.
De 2de mannier is via compostion en een interface waar je domain een object PersitanceProperties heeft en een interface Persitable implementeert. Dit is veel flexibeler dan de vorige oplossing, maar vereist het schrijven van delegate methodes en is moeilijk te mappen als je ejb3.0 gebruikt.
De 3de is de meest complexe. Bij de vorige 2 methodes zie je nog altjd aan je model dat het naar een databank wordt geschreven. Een oplossing hier voor is om een PesistableWrapper te schrijven rond je domain object. Maar dan heb je voor iedere domain class een domainInterface, domainImpl en domainWrapper nodig.
Welke methode verkies jij en waarom?
Je het je domain model en dit domain model moet pesistable gemaakt worden dus moet er een id, version en meestal nog een creation en modification date op.
Nu zijn er dat ik weet 3 methodes met alle 3 hun voor en nadelen.
De eenvoudigste is gewoon een abstract class PersitableObject maken en uw domain die laten extenden.
De 2de mannier is via compostion en een interface waar je domain een object PersitanceProperties heeft en een interface Persitable implementeert. Dit is veel flexibeler dan de vorige oplossing, maar vereist het schrijven van delegate methodes en is moeilijk te mappen als je ejb3.0 gebruikt.
De 3de is de meest complexe. Bij de vorige 2 methodes zie je nog altjd aan je model dat het naar een databank wordt geschreven. Een oplossing hier voor is om een PesistableWrapper te schrijven rond je domain object. Maar dan heb je voor iedere domain class een domainInterface, domainImpl en domainWrapper nodig.
Welke methode verkies jij en waarom?