Software Factory

   

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.

 

-November 2018+
SMTWTFS
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
  • RSS
  • Add To My MSN
  • Add To Windows Live
  • Add To My Yahoo
  • Add To Google

Statistics

  • Entries (1)
  • Comments (0)

Archives


Download gegevens

Site Map | Printable View | © 2008 - 2018 LeBroITSolutions | | HTML 5 | CSS