tag:blogger.com,1999:blog-973718928927935206.post6190429369934952251..comments2024-03-18T09:17:29.149+01:00Comments on Joy of software development: Naturalny porządek refaktoryzacji pod lupą cz. 1Anonymoushttp://www.blogger.com/profile/10018425072074176883noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-973718928927935206.post-11186836606071732072011-06-06T13:29:09.501+02:002011-06-06T13:29:09.501+02:00Cyt "jeśli korzystasz z tej metody other.some...Cyt "jeśli korzystasz z tej metody other.someWork() tylko w wyodrębnionej metodzie, to przenosisz wyodrębnioną metodę i zależność (pole other) do nowej/innej klasy np. ExtractedClass, i to ona będzie wstrzykiwana"<br /><br />Właśnie o to mi chodziło, zastanawiałem się czy nowo wyodrębniona klasa ma być beanem zarządzalnym aby było w nim możliwe wstrzyknięcie czy zwykłą klasą POJOMirekhttps://www.blogger.com/profile/02964116031786388011noreply@blogger.comtag:blogger.com,1999:blog-973718928927935206.post-39866382757727204172011-06-06T12:08:16.260+02:002011-06-06T12:08:16.260+02:00Jeśli dobrze Cię rozumiem, to pytasz, co zrobić w ...Jeśli dobrze Cię rozumiem, to pytasz, co zrobić w sytuacji, kiedy wyodrębniona metoda korzysta z metody obiektu, który jest zależnością (czyli polem w klasie, kompozycją).<br /><br />Najprawdopodobniej (choć może się to różnić w konkretnych przypadkach):<br />1) jeśli korzystasz z tej metody other.someWork() tylko w wyodrębnionej metodzie, to przenosisz wyodrębnioną metodę i zależność (pole other) do nowej/innej klasy np. ExtractedClass, i to ona będzie wstrzykiwana<br />2) jeśli metody klasy OtherService są wykorzystywane również w innych metodach danej klasy SomeService, to być może je wszystkie można przenieść do nowej/innej klasy ExtractedClass.<br />3) jeśli nie można przenieść, choć to dzieje się rzadziej (zgodnie z zasadą SRP - pojedynczej odpowiedzialności), to obydwie klasy: SomeService i ExtractedClass mają zależność OtherService.<br /><br />Skonkretyzuj przykład to będzie można wskazać bardziej konkretnie rozwiązanie :)Anonymoushttps://www.blogger.com/profile/17938886516274513852noreply@blogger.comtag:blogger.com,1999:blog-973718928927935206.post-41543407737657602672011-06-05T18:20:56.083+02:002011-06-05T18:20:56.083+02:00Zawsze mam problem z refaktoryzacja na etapie &quo...Zawsze mam problem z refaktoryzacja na etapie "extract class". Co zrobić w sytuacji kiedy wyodrebniona metoda korzysta z wstrzyknieę w serwisie<br /><br />np <br /><br />public class SomeService{<br />@Inject<br />OtherService other;<br /><br />public void extractedMethod(){<br />other.someWork();<br />.....<br />}<br />}<br /><br />Nie wiem czy wtedy tworzyć kolejny serwis który obsługuje wstrzyknięcia czy lepiej stowrzyć zwykłą klasę i zależności przekazać jej jako parametry konstruktora ewentualnie jaka fabryczkaMirekhttps://www.blogger.com/profile/02964116031786388011noreply@blogger.com