[PHP] idea zaprojektowania klas, jak zbudować drezwo, skladające się z wielu poziomów liści - obiektów |
[PHP] idea zaprojektowania klas, jak zbudować drezwo, skladające się z wielu poziomów liści - obiektów |
21.03.2007, 18:55:03
Post
#1
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 28.08.2005 Ostrzeżenie: (0%) |
witam,
mój problem jest dość zawiłi i nie wiem jak sobie z nim poradzic, mam nadzieje że ktoś naprowadzi mnie na rozwiązanie. Muszę zbudować w PHP schemat BOM (tzw zestawienie materiałowe dotyczące wytwarzania jakiegos produktu). Cytat BOM - wykaz wszystkich części –materiałów, niezbędnych do kompletnego wykonania wyrobu elementu/ komponentu zamawianego przez klienta Taki przykładowy, bardzo uproszczony model wytwarzania np długopisu wygląda tak: Jak widać, schemat ten to tak naprawde drzewo - obiekt, w którego skład wchodzą róznego poziomu liście - także obiekty. Nie wiem, jak zaprojektować taki model, przytoczony przykład to tylko uproszczony schemat na potrzeby zaprezentowania problemu. Takich produktów finalnych, jest wiele z róznym stopniem zagnieżdzenia. Np proces produkcji długoposu to 3 poziomy, a co jeżeli mamy wyprodukować samochód?? takich poziomów będzie naprawdę sporo ("0" - produkt finalny , "n"- śrubka) Planuję zrobić coś takiego, jak pochodzenie, tzn w chwili tworzenia obiektu, przypisać mu informacje na temat "jego" dzieci (obiektów niższego poziomu) i rodzica :
Czy takie podejście do problemu jest poprawne?? Może są lepsze metody budowy takiego schematu?? Będę wdzięczny za każdą nawet najdrobniejszą sugestię ! pozdrawiam -------------------- ThE EnD oF ThE InTErnEt !
pasy zabezpieczające |
|
|
21.03.2007, 20:20:51
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) |
Zajrzyj do wzorca Composite (Kompozyt).
I opisz co chcesz robic z tymi obiektami (budowac, znajdywac rodzica danego obiektu, wszysktkie dzieci, zliczyc ilosc podobiektow, itp), bo to wlasnie wplywa na sposob przechowywania danych. -------------------- Nie lubię jednorożców.
|
|
|
22.03.2007, 02:19:02
Post
#3
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 28.08.2005 Ostrzeżenie: (0%) |
jest to częśc wiekszego projektu, powstałe elmenty, czyli całe drzewa złożone z obiektów będą wykorzystywane do tworzenia min. planów projektowych, harmonogramów itp
jeżeli chodzi o ich wykorzystanie to : -muszę budować drzewa, znając ilość dzieci, tzn każdy produkt finalny buduje sie z innej ilości elementów. -mieć mozliwość znalezienia rodzica, dzieci, ilosci poszcegolnych poziomów, w tym także zliczyc ilosc podobiektow, wszysktkie dzieci, w pozniejszym etapie bedzie także porownanie takich struktur pod względem wydajnościowych czy finansowym problem mam jednak z koncepcją całośći, ponieważ nigdy nic tak dużego nie tworzyłem i jakoś ogrom projektu mnie troche przytłacza. narazie przejrze założenia wzorca Composite, a potem bede Was dręczył pytaniami hehe dzieki i pozdr ----edit---- rzeczywiście wykorzystanie wzorca złożonego- composite częściowo rozwiązuje mój problem. prawde powiedziwszy nie pomyslałem aby rozgraniczyć dzieci na te, co mają potomstwo i na te, co ich nie mają. takie podejscie jest lepsze. btw dlatego sie nazywaja wzorcami hehe Ale mam pytanie dotyczące np złego wykorzystania, zaadoptowania obiektu. bo przecież może sie zdażyć, że obiekt(composite) , który moze posiadac dzieci, przez przypadek odwoła się do referencji juz istniejącego obiektu - jego rodzica (component). czyli powstaje paradoks- bo dziecko jest zarowno potomkiem jak i rodzicem, jak uniknąc takiego działania? pozdr Ten post edytował plisek 22.03.2007, 02:19:33 -------------------- ThE EnD oF ThE InTErnEt !
pasy zabezpieczające |
|
|
22.03.2007, 09:33:43
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) |
Cytat bo przecież może sie zdażyć, że obiekt(composite) , który moze posiadac dzieci, przez przypadek odwoła się do referencji juz istniejącego obiektu - jego rodzica (component). czyli powstaje paradoks- bo dziecko jest zarowno potomkiem jak i rodzicem, jak uniknąc takiego działania? Juz sie pogubilem co do czego sie odwoluje, ale po prostu sprawdzasz czy takie przypisanie jest wlasciwe, i gdy nie jest to po prostu nie przypisujesz. (poprzednia wersja brzmiala:) Da sie tak polaczyc obiekty. Ale jesli nie chcesz takiej funkcjonalnosci to przy dodawaniu sprawdzasz czy nowe dziecko nie jest przodkiem obiektu do ktorego jest dodawane i na podstawie tego dodajesz lub nie. Ale jak sprawdzic czy jest to przodek: szukasz rodzica (ow) rekurencyjnie w gore az do roota (korzenia drzewa) i porownujesz obiekty. Znajdowanie rodzica, dzieci - to proste. Zliczanie tez (kompozyt sumuje wartosci dzieci). A porownywanie -- nie wiem jak przebiega. -------------------- Nie lubię jednorożców.
|
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 18:51 |