![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przerabiam sobie wzorzec złożony i znowu mam parę pytań. Tym razem analizując kod, każdy krok zapisywałem na kartce żeby sobie to dobrze wyobrazić. Później postanowiłem przepisać kod i go odpalić. Poniżej zamieszczę kod (pochodzi z ksiązki "PHP5 zaawansowane programowanie" ze strony 94)
A teraz bardzo Was proszę o przeanalizowanie go ze mną, bo nie wiem czy dobrze łapie.
Ad 1. Tworzymy instancję klasy DrumSet. Właściwość $name = 'Zestaw tama maple', $category = 'perkusje' Ad 2. Do tablicy $instruments dodajemy instancję klasy SnareDrum Ad 3. Do tablicy $instruments dodajemy instancję klasy BaseDrum Czyli teraz wygląda to tak: drums $name - Zestaw tamla maple $category - perkusje $instruments - [ ($name - werbel, $category - werble), ($name - bęben, $category - bębny) ]
Ad 1. Tworzymy instancję klasy Cymbal. Właściwość $name = 'Zestaw talerzy zilidjian', $category='talerze' Ad 2. Do tablicy $instruments dodajemy instancję klasy Cymbal Ad 3. Do tablicy $instruments dodajemy instancję klasy Cymbal cymbals $name - Zestaw talerzy zilidjian $category - talerze $instruments - [ ($name - Maly talerz, $category - talerze), ($name - Duży talerz, $category - talerze) ] Do tego miejsca rozumiem. Ale za cholere nie mogę pojąć Ad 4. Jak do tablicy $instruments, która przechowuje pary name-category mogę dodać obiekt, który dodatkowo przechowuje kolejną tablicę instruments? |
|
|
![]() ![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 8.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
To jest dosc proste. Cala ta klasa wyglada jak tablica zlozona z obiektow typu AbstractInstrument.
A wiec jesli chodzi o to co napisales to wszystko sie zgadza. Jesli chodzi dlaczego to polecenie dziala:
to zauwaz ze to co pisales wczesniej:
mozna zapisac nastepujacy:
Zauwaz ze metoda add przyjmuje zawsze element typu AbstractInstrument, czyli obiekt. Zapis w jednej linijce jest poprostu uproszczony i latwiej widac co sie dodaje. A teraz wracajac do dalszej czesci kodu:
W tej linijce laczysz jakby dwie tablice. Po polaczeniu wyjdzie Ci cos takiego: $drums=[ ($name - werbel, $category - werble), ($name - bęben, $category - bębny), (Zestaw talerzy zildian, talerze) => [ ($name - Maly talerz, $category - talerze), ($name - Duży talerz, $category - talerze) ] ] Nie wiem czy to dobrze zapisalem ale struktura wyglada nastepujaco (opisywana po nazwie): *Zestaw tama maple - werbel Nie wiem czy umiem tlumaczyc ale jak chociaz cokolwiek zrozumiales to juz bede szczesliwy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jak czegos nadal nie wiesz to pytaj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował goffyy 24.08.2006, 23:34:03 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
To jest dosc proste. Cala ta klasa wyglada jak tablica zlozona z obiektow typu AbstractInstrument. A wiec jesli chodzi o to co napisales to wszystko sie zgadza. Jesli chodzi dlaczego to polecenie dziala:
to zauwaz ze to co pisales wczesniej:
mozna zapisac nastepujacy:
Zauwaz ze metoda add przyjmuje zawsze element typu AbstractInstrument, czyli obiekt. Zapis w jednej linijce jest poprostu uproszczony i latwiej widac co sie dodaje. A teraz wracajac do dalszej czesci kodu:
W tej linijce laczysz jakby dwie tablice. Po polaczeniu wyjdzie Ci cos takiego: $drums=[ ($name - werbel, $category - werble), ($name - bęben, $category - bębny), (Zestaw talerzy zildian, talerze) => [ ($name - Maly talerz, $category - talerze), ($name - Duży talerz, $category - talerze) ] ] Nie wiem czy to dobrze zapisalem ale struktura wyglada nastepujaco (opisywana po nazwie): *Zestaw tama maple - werbel Nie wiem czy umiem tlumaczyc ale jak chociaz cokolwiek zrozumiales to juz bede szczesliwy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jak czegos nadal nie wiesz to pytaj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Doszedłem do tego wczoraj o 2 w nocy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzięki za odpowiedź. Ta książka jest strasznie zamotana. Osoba, która ją tłumaczyła nie miała bladego pojęcia co robi.. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 01:20 |