Het Factory design pattern
In objectgeoriënteerde programmeertalen is het
factory-ontwerppatroon een manier om objecten te instantiëren zonder exact vast hoeven te leggen van welke klasse deze objecten zullen zijn. In dit patroon wordt een methode (de factory-methode) gebruikt die door subklassen geïmplementeerd kan worden. De klasse van het object dat door die methode geïnstantieerd wordt, implementeert een bepaalde interface of abstracte klasse. Elk van de subklassen kan vervolgens bepalen van welke klasse een object wordt aangemaakt, zolang deze klasse maar die interface of abstracte klasse implementeert.
Het doel van dit ontwerppatroon is het vereenvoudigen van de aanroep van nieuwe instanties die overerven van een basis klasse en daarmee onderhoud van het programma.
De aanroep van verbijzonderingen of specialisaties van de basis klasse kan in .NET m.b.v. Reflection geheel geconfigureerd worden, hierdoor kunnen nieuwe klassen toegevoegd worden zonder dat het basisprogramma gewijzigd c.q. gecompileerd wordt.
Hoe is het toegepast?
Bovenstaande patroon is toegepast voor de logica achter rekensommen in de applicatie, hiermee is het mogelijk om die logica te gebruiken binnen elke willekeurige (.NET) applicatie, meer informatie vindt u op MSDN.
Voor diegene die graag het pattern in code willen ontdekken heb ik een testprogramma gemaakt met een voorbeeld hoe toe te passen in een console applicatie samen met de factory projecten en bijbehorende unittests. Vooral die unittests zijn makkelijk om door de code te lopen en de logica door te nemen. De hoeveelheid unittest geven een dekkingpercentage van bijna 100%, dus elk mogelijke combinatie kun je naspelen en doornemen.
Om het uit te proberen moet je wel Visual Studio 2005 of hoger geïnstalleerd hebben bij voorkeur versie 2008/2010 en het .NET framework 3.5. Heb je vragen meld je aan en geef me een berichtje over wat je graag wilt weten.