Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 7 Dołączył: 16.07.2007 Skąd: Gorzów Wielkopolski Ostrzeżenie: (0%)
|
Ostatnio zainteresowałem się tym artykułem: http://phpgeek.pl/112/dependency-injection-container/ Ciekawi mnie jedna kwestia, czy instancję Containera przekazywać gdzieś dalej do obiektów i do obiektów w obiektach przez parametr, czy skorzystać z tego, że tablica jest zmienną statyczną i w kolejnych "zagnieżdżeniach" obiektów tworzyć nowy obiekt Containera? Bo jeśli przez parametr to można wywalić zmienną statyczną (większa śladowa wydajność, większy bałagan w parametrach) a jeśli tworzyć nowy obiekt to niby nam ta wydajność spada, bo i zmienna statyczna i do tego kolejne obiekty... np 3 obiekty przy jednym żądaniu. Chociaż nie wiem jak się ma to do zmiennych statycznych, to podobno stosowanie metod statycznych (w większej dawce) odbywa się kosztem spadku wydajności. Co Wy o tym wszystkim myślicie?
|
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 11 Dołączył: 7.04.2003 Ostrzeżenie: (10%)
|
Cytat Jak dla mnie to po prostu ciekawe zastosowanie kolekcji Można na to patrzyć zróżnych stron ale należy pamiętać, że w kolekcjach chodzi o PRZECHOWYWANIE obiektów w jakiś tam inteligentny sposób. Np. kolekcja która nie pozwoli na 2 identyczne elementy, albo kolekcja która nie wpuści elementu o typach innych niż te dozwolone. Kontenery IoC nie mają z takim zachowaniem nic wspólnego. W kontenerach chodzi o to aby wprowadzić do systemu kolejną wyraźnie odseparowaną warstwę abstrakcji do której przenosimy inicjalizację obiektów. @Crozin Wracając do tego co napisałeś wcześniej: Cytat A żeby nie było: celem tego wzorca jest zapewnienie dokładnie jednej instancji danej klasy, a nie globalny dostęp do obiektu - od tego jest global. Zgadzam się z pierwszą częścią i może Cię źle rozumiem jeżeli tak to mnie popraw, ale mam wrażenie, że uważasz, że wprowadzanie globalności przy pomocy singletonu jest złe a korzystanie z niej przy pomocy global jest ok. A przecież nie chodzi o to że wprowadzanie globalności przez singleton jest złe, chodzi o to że sama globalność jest zła niezależnie od tego czy wprowadzana poprzez singleton czy przez global. Wracając do globalności kontenera. Wyobraźmy sobie że mamy globalny kontener mający w sobie referencje do wszystkich już zainicjalizowanych w systemie obiektow. Teraz chcemy zainicjalizować z niego nowy obiekt, który miał by być utworzony z referencjami do obieków które kontener już posiada. Ale nie jakichś tam obiektów tylko konkrtnych obiektów tak jak to zwykle bywa w programach (IMG:style_emoticons/default/smile.gif) . I co się okazuje, i tak musimy powiedzieć kontenerowi wyraźnie których konkretnie z obiektów ma użyć do inicjalizacji nowego obiektu. A w jaki sposób możemy mu to powiedzieć? Dostarczając referencję do tych obiektów. Mam rację? (IMG:style_emoticons/default/smile.gif) A skoro musimy dostarczać tych referencji w momencie inicjalizacji nowego obiektu, to równie dobrze możemy tworzyć sobie nową instancje kontenera zamiast korzystać z jednej globalnej. Globalność kontenra może się przydać w pewnych sytuacjach ale w innych jak wyżej opisywana nie jest przydatna. |
|
|
|
Luneth Dependency Injection Container 17.08.2010, 19:50:56
Crozin Wydajność nie ma tu większego znaczenia - chodzi b... 17.08.2010, 19:54:17
Luneth W tym poście chodzi mi o to, aby głównie się skupi... 17.08.2010, 19:59:50
smentek A My o tym wszystkim myślimy, że z całą pewnością ... 8.09.2010, 20:50:04
Crozin @smentek: To Tobie radziłbym poczytać o tym wzorcu... 8.09.2010, 21:28:18
smentek Cytat(Crozin @ 8.09.2010, 22:28:18 ) ... 8.09.2010, 21:48:17
Crozin CytatNie zaproponowałem jednak niczego poza tym że... 8.09.2010, 23:36:42
smentek Ale dlaczego uważasz że kontener miał by mieć zasi... 8.09.2010, 23:51:32
Crozin Bo skoro nie lokalny (i bezpośrednio przekazywany ... 9.09.2010, 06:43:21
smentek Ok przyznaję, że daleko mi do eksperta jeżeli chod... 9.09.2010, 07:10:51
dariuszp Wzorzec jak wzorzec. Jak dla mnie to po prostu cie... 9.09.2010, 09:50:09
Crozin Tak, źle zrozumiałeś. Napisałem, że robienie z Sin... 10.09.2010, 06:33:03
Luneth Ja swój problem rozwiązałem tak: Container przecho... 12.09.2010, 10:23:40
wookieb Cytat(Crozin @ 10.09.2010, 07:33:03 )... 12.09.2010, 10:44:48
Luneth Okej, to mogę wywalić zmienną statyczną i wszędzie... 12.09.2010, 11:50:15
wookieb Właściwości statyczne przydają się w miejscach gdz... 12.09.2010, 12:05:26
Luneth Nie zrobiłem klasy statycznej, jedynie atrybut prz... 12.09.2010, 12:58:34
Crozin CytatNie zrobiłem klasy statycznejTak, wiemy - bo ... 12.09.2010, 13:58:25
Luneth Owszem, mam coś na tej zasadzie. Nie tworzę za każ... 12.09.2010, 14:04:58 ![]() ![]() |
|
Aktualny czas: 10.06.2026 - 20:39 |