„Gyár programtervezési minta” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
77. sor:
:Miután azonban beüzemeljük a gyárat, megváltoztatjuk az osztályt. A konstruktor priváttá tétele miatt az addig forduló kód akár számos hibát is jelezhet. Ha a konstruktor nem privát, akkor ugyan fordul a kód, de megkérdőjeleződhet a tervminta értelme.
*Egy másik korlát, hogy a termékből nem lehet származtatni, ha a konstruktor privát. Ekkor ugyanis az alosztályok nem tudják hívni. Ezen lehet segíteni protected konstruktorral.
*A harmadik korlát ebben az esetben is fennáll, ugyanis az alosztályoknak újra kell implementálniuk az öröklött gyártó metódusokat egy anomália miatt. Különben a metódus visszatérési értéke egy ősosztály típusú objektum lesz, vagyis a visszaadott objektum elfelejti, hogy ő valójában egy utód osztály példánya. Ezt reflexióval[[reflexió]]val ki lehet védeni.
 
Mindhárom lehetséges probléma megoldható azzal, hogy a nyelv a gyárakat elsőosztályú tagokként kezeli.<ref>{{cite journal
| first = Ellen
| last = Agerbo
| first2 = Aino
| last2 = Cornils
| isbn = 1-58113-005-8
| title = How to preserve the benefits of design patterns
| pages = 134–143
| year = 1998
| journal = Conference on Object Oriented Programming Systems Languages and Applications
| location = Vancouver, British Columbia, Canada
| publisher = ACM
}}</ref>
 
==Jegyzetek==