MegaJorgovan
Poštovan
- Učlanjen(a)
- 27.12.2017
- Poruke
- 35
- Poena
- 55
Pozdrav,
Potreban mi je savet. Radim jednu aplikaciju. U istoj se kreira zgrada, zgrada ima spratove, sprat ima sobe, soba ima zidove, zid ima otvore (vrata, prozore)...
Svaka soba ima temperaturu, svaki zid ima svoju orijentaciju prema strani sveta i temperaturu sobe zbog izrade nekih proracuna. Ima i druge propertie ali oni nisu bitni. Zid moze da bude zajednicki za dve sobe (moze da bude i spolji zid, al to sada nije bitno) pa tako da kada u sobi1 kreiram zid, taj isti zid treba da se kreira na sobi2 (tj sobi koja se granici sa sobom1). Prilikom kreiranja zida, ja znam sa kojom sobom se granici, posto se to odredjuje na UI-u. Sada imamo kreiran zid i nalazi se u obe sobe. Ali zid u sobi1 je npr orijentisan ka istoku (E) i ima temperaturu sobe1, a zid u sobi2 je tako orijentisan na zapad (W) i ima temperaturu sobe2. Orijentacija se gleda u odnosu na sobu u kojoj je zid. S obzirom na isti zid ima razlicite orijentacije i razlicite temperature za proracun, morao sam da napravim da su to dva razlicita zida, tacnije dva objekta sa odvojenim referencama. Nisam nista mogao da menjam prilikom postavljanja drugog zida jer bih radio sa istom referencom pa bi se promene reflektovale i na prvi zid. Dakle, to su dva zida sa razlicitim ID.
Kada se kreiraju npr vrata, kreiraju se na zidu u sobi1 (pricamo samo o sobi1 i sobi2 i jednom zidu izmedju njih), pa ista ta vrata treba da se kreiraju u sobi2 na istom, zajednickom, zidu. Problem je kada soba2 ima vise od jednog zida, pa ne znamo na koji zid je potrebno da se postave vrata. Reference postoje samo u jednom pravcu, od roditelja ka detetu. U kontra smeru nema nista, dete ne zna nista o roditelju.
Problem sam resio tako sto sam zidovima dodao po jos jedan ID, i nazvao ga PairID i oni su zajednicki za dva ista zida. Jedan zid deli dve sobe, to su u stvari dva zida u dve sobe, sa zaiednickim PairID-em. I onda kada hocu da nadjem koji je taj zid u sobi2, trazim ga preko pairId-a. I sve je to super, al onda se stvara problem kod brisanja nekog zida. Ili cele sobe. Onda moraju da se brisu svi zidovi koji imaju veze sa zidom koji se brise odnosno sobom koja se brise. Resio sam i to, al je nekako jako konfuzno.
Sve radim preko interface-a i eventa (s obzirom da nemam kontra referencu).
Da li postoji neki jednostavniji nacin da se ovo resi? Da se ne koristi pairId, a da se sve azurira kako treba? Gledao sam Mediator pattern, al on izgleda ne moze da mi resi problem.
Trudio sam se da budem sto jasniji u opisu, al ako nesto nije jasno, pisite pa cu bolje objasniti... Hvala
Potreban mi je savet. Radim jednu aplikaciju. U istoj se kreira zgrada, zgrada ima spratove, sprat ima sobe, soba ima zidove, zid ima otvore (vrata, prozore)...
Svaka soba ima temperaturu, svaki zid ima svoju orijentaciju prema strani sveta i temperaturu sobe zbog izrade nekih proracuna. Ima i druge propertie ali oni nisu bitni. Zid moze da bude zajednicki za dve sobe (moze da bude i spolji zid, al to sada nije bitno) pa tako da kada u sobi1 kreiram zid, taj isti zid treba da se kreira na sobi2 (tj sobi koja se granici sa sobom1). Prilikom kreiranja zida, ja znam sa kojom sobom se granici, posto se to odredjuje na UI-u. Sada imamo kreiran zid i nalazi se u obe sobe. Ali zid u sobi1 je npr orijentisan ka istoku (E) i ima temperaturu sobe1, a zid u sobi2 je tako orijentisan na zapad (W) i ima temperaturu sobe2. Orijentacija se gleda u odnosu na sobu u kojoj je zid. S obzirom na isti zid ima razlicite orijentacije i razlicite temperature za proracun, morao sam da napravim da su to dva razlicita zida, tacnije dva objekta sa odvojenim referencama. Nisam nista mogao da menjam prilikom postavljanja drugog zida jer bih radio sa istom referencom pa bi se promene reflektovale i na prvi zid. Dakle, to su dva zida sa razlicitim ID.
Kada se kreiraju npr vrata, kreiraju se na zidu u sobi1 (pricamo samo o sobi1 i sobi2 i jednom zidu izmedju njih), pa ista ta vrata treba da se kreiraju u sobi2 na istom, zajednickom, zidu. Problem je kada soba2 ima vise od jednog zida, pa ne znamo na koji zid je potrebno da se postave vrata. Reference postoje samo u jednom pravcu, od roditelja ka detetu. U kontra smeru nema nista, dete ne zna nista o roditelju.
Problem sam resio tako sto sam zidovima dodao po jos jedan ID, i nazvao ga PairID i oni su zajednicki za dva ista zida. Jedan zid deli dve sobe, to su u stvari dva zida u dve sobe, sa zaiednickim PairID-em. I onda kada hocu da nadjem koji je taj zid u sobi2, trazim ga preko pairId-a. I sve je to super, al onda se stvara problem kod brisanja nekog zida. Ili cele sobe. Onda moraju da se brisu svi zidovi koji imaju veze sa zidom koji se brise odnosno sobom koja se brise. Resio sam i to, al je nekako jako konfuzno.
Sve radim preko interface-a i eventa (s obzirom da nemam kontra referencu).
Da li postoji neki jednostavniji nacin da se ovo resi? Da se ne koristi pairId, a da se sve azurira kako treba? Gledao sam Mediator pattern, al on izgleda ne moze da mi resi problem.
Trudio sam se da budem sto jasniji u opisu, al ako nesto nije jasno, pisite pa cu bolje objasniti... Hvala