siemka!
Tak jak w temacie do czego służy windstor castle (jak chłopu w karczmie) i czy warto nad nim przysiąść?
Pozdro
byłem i widziałem,
z tego wnioskuje ze jest to kontener na obiekty jakieś które można pozniej masowo uruchamiać, angielski mój jest na słabym poziomie
Inside WorkflowStepper you need to use EmailSender.
You could always say new EmailSender().Send(emailMessage);
but that - the use of new - creates a TIGHT COUPLING that is hard to change. (this is a tiny contrived example after all)
Nie przekonuje mnie to. Nie widzę sensu masowego udziwniania kodu, i używania do tego całej wielkiej biblioteki, która nic nie robi.
Nie wiem jak Wam się to kojarzy, ale jak dla mnie to jakaś dziwna i pokrętna wariacja na temat springa.
@Azarien ale ja rozumiem że toto to zwykły kontener IoC jest. IoC nie powoduje udziwnienia kodu, a wręcz przeciwnie :D
@ojajko idea IoC jest taka, że nie musisz się przejmować skąd jakaś klasa bierze swoje zależności, tylko deklarujesz że je chcesz a kontener je automatycznie dostarcza.
Przy czym to nie jest tak że każdy obiekt w aplikacji jest zarządzany przez kontener bo to bez sensu. Kontener zarządza zwykle obiektami "serwisowymi" (DAO, to co zwykle zrobiłbyś Singletonem etc), które często są potrzebne w innych obiektach serwisowych. W ten sposób nie musimy się głowić jak przekazać obiekt X do obiektu Y (co może się wiązać z przepychaniem tego obiektu przez pół aplikacji ;) )
Tak, Castle Windsor to zwykły kontener IoC, chyba najbardziej rozbudowany i najczęściej używany w komercyjnych projektach w .NET. (Oczywiście jak komuś nie pasuje, to ma też z 10 albo i 20 konkurencyjnych kontenerów, nie tylko springa jak u konkurencji.)
Jeśli ktoś nie widzi zalet stosowania IoC, to znaczy, że nigdy nie napisał aplikacji, która ma praktyczne zastosowanie i więcej niż 30 klas używanych w więcej niż w jednym miejscu. Bo mniej więcej na tym etapie człowiek powinien zacząć się zastanawiać, czy faktycznie trzeba ciągle tworzyć te obiekty i milion razy używać new
, czy nie da się tego zrobić prościej.
I IoC to nie jest jakiś .NETowy wynalazek, jakby ktoś jeszcze tego nie wiedział. ;P
@somekind przesadzasz ;) Dla javy masz też inne IoC oprócz Springa. Spring swoją popularność zawdzięcza temu, że oprócz IoC udostępnia masę innych zabawek :)
Swoją drogą byl przecież nawet port Spring IoC na .NET z tego co pamiętam :)
Zgadzam sie że jeśli ktoś nie widzi potrzeby używania IoC to znaczy że mało w życiu widział :) Szczególnie jeśli chodzi o wielowarstwowe aplikacje czy aplikacje webowe ;]