Przypisywanie własności nowym obiektom

0

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?

0

Ja bym dodał parametry wywołania do metody Create.

0

ale JakasKlasa należy do frameworku
chciałem uogólnić przypadek, ale konkretnie chodzi o HttpWebRequest

0

W zupełności wystarczy metoda, który stworzy ci taki obiekt. To czy ma się znajdować w obecnej klasie czy w oddzielnej, jako metoda statyczna zależy od tego czy masz zamiar korzystać z niej jeszcze w innych miejscach. Ale skłaniałbym się ku zwykłej, prywatnej metodzie.

0

faktycznie, tak właśnie zrobiłem i wygląda w porządku
wcześniej miałem podobny kod jeszcze w innym miejscu programu dlatego chciałem go wydzielić, ale dzięki zrobieniu zwykłej metody prywatnej mogłem do niej władować więcej kodu zależnego od tej konkretnej klasy i kod się bardzo uprościł - najwyżej w drugim miejscu zrobię podobną metodę

0

mozesz stworzyc extension method MyCreate: http://msdn.microsoft.com/en-us/library/bb383977.aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1