![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 4 Dołączył: 18.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Pracując na projektem pisanym obiektowo, natknęliśmy się na problem korzystania z metod jednej klasy w drugiej.
Dyskutując na ten temat, odrzuciliśmy tworzenie obiektu innych klas wewnątrz danej klasy, czyli:
Zostały dwa sposoby, podane w nazwie tematu. Małe wyjaśnienie odnośnie klas statycznych: jak pewnie większość się domyśla, chodzi o pisanie metod statycznych i korzystanie z nich w innej klasie w sposób następujący: Klasa::metoda(); W związku z tym zwracam się do Was z prośbą o wyrażenie opinii, z czego byście wy skorzystali i dlaczego. Ja osobiście jestem za Dependency Injection znanego z Symfony, ale trzeba jakoś innych przekonać ;] Ten post edytował Inscure 6.05.2011, 19:56:36 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 262 Pomógł: 39 Dołączył: 12.04.2004 Ostrzeżenie: (0%) ![]() ![]() |
Po raz kolejny spotykam się z brakiem zrozumienia semantyki słowa klasa. "Klasa", w której wszystko jest statyczne nie jest klasą, tylko przestrzenią nazw. Chyba jedyną różnicą miedzy tego typu zbiornikiem, a typową przestrzenią nazw jest możliwość dziedziczenia, choć i to da się zasymulować w przypadku zwyczajnych przestrzeni nazw.
Co więcej, jakie wg. Ciebie "klasa" statyczna ma zalety względem tworzenia obiektów w innych obiektach? Ja nie widzę żadnych. DI daje wspaniałą, niemalże nieograniczoną, elastyczność. Po co sobie na siłę życie komplikować? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 4 Dołączył: 18.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Po raz kolejny spotykam się z brakiem zrozumienia semantyki słowa klasa. "Klasa", w której wszystko jest statyczne nie jest klasą, tylko przestrzenią nazw. Co więcej, jakie wg. Ciebie "klasa" statyczna ma zalety względem tworzenia obiektów w innych obiektach? Ja nie widzę żadnych. Jakbym zaczął pisać o przestrzeni nazw to nie każdy by kojarzył o co mi chodzi, a ja to odniosłem tylko do kodu zawartego miedzy class Nazwa {} (IMG:style_emoticons/default/smile.gif) Odpowiadając na pytanie: przecież DI to nie jest tworzenie obiektu w obiekcie, tylko wstrzykiwanie już utworzonego obiektu. A jeśli chodziło Ci o przykładowy kod, który podałem, to podkreśliłem nawet, że tą opcję odrzuciliśmy na samym początku (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 10:22 |