Mam powiedzmy coś takiego (pseudokod):
JakasKlasa jakisObiekt;
jakisObiekt = JakasKlasa.Create();
jakisObiekt.wlasnosc1 = i;
jakisObiekt.wlasnosc2 = txt;
jakisObiekt.wlasnosc3 = 5;
innyObiekt = jakisObiekt.wykonaj();
/* operacje na "innyObiekt" */
jakisObiekt = JakasKlasa.Create();
jakisObiekt.wlasnosc1 = i;
jakisObiekt.wlasnosc2 = txt;
jakisObiekt.wlasnosc3 = 8;
innyObiekt = jakisObiekt.wykonaj();
/* operacje na "innyObiekt" (całkiem inne niż poprzednio) */
Jak tu zastosować zasadę DRY? Zrobić zwykłą funkcję która przypisze powtarzające się własności? Wykorzystać wzorzec fabryki? Jakiś inny? Jeśli tak to - wydzielić funkcję tworzącą do osobnej klasy? Statycznej? Zrobić metodę rozszerzającą obiekt JakasKlasa?
Jak osobiście byście to napisali?