Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Observer-Observable pattern i serijalizacija

[es] :: Java :: Observer-Observable pattern i serijalizacija

[ Pregleda: 2039 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Bope

Član broj: 62233
Poruke: 291
*.adsl.verat.net.

Sajt: www.shortsms.me


+4 Profil

icon Observer-Observable pattern i serijalizacija23.04.2010. u 21:10 - pre 147 meseci
Pozdrav!
Pravim u Javi jedan program u kome objekti medjusobno komuniciraju preko Observer/Observable sablona. To fino radi, objekat "A" je "posmatran" od strane objekta "B" koji "hvata" dogadjaje objekta "A".
Medjutim, kada serijalizujem i deserijalizujem objekte koji na taj nacin komuniciraju, negde u tom procesu se izgubi veza izmedju ta dva objekta, tj nakon deserijalizacije objekti vise ne mogu jedan drugog da obavestavaju o dogadjajima. Da li je problem u mom kodu ili serijalizacija "ne voli" Observer/Observable pattern? Implementirao sam "readObject" metodu u kojoj eksplicitno povezujem objekte A i B, ali to resenje malo "smrdi", a bez njega imam problem.... :\

E sad, komplikacija zbog koje nisam siguran da li je moj princip los ili je nesto do serijalizacije:
Zbog toga sto su i A i B izvedene klase, morao sam da napravim svoju Observable klasu:

public class Generator Extends Observable implemetns Serializable { ... }

Klasa A:
public class A extends D implements Serializable {
Generator gen = new Generator();
public getGenerator() {
return gen;
}
}

Povezivanje objekata sam izvrsio po sledecem principu:
public class B extends C implements Serializable {
A objekatA = new A();

public void nekaMetoda() {
objekatA.getGenerator.addObserver(this) //this je objekat B
}
}

Gde gresim?
 
Odgovor na temu

reg
java,java,java
bgd

Član broj: 249663
Poruke: 30
*.dynamic.sbb.rs.



Profil

icon Re: Observer-Observable pattern i serijalizacija24.04.2010. u 00:05 - pre 147 meseci
Tvoje pitanje o serijalizaciji je diskutovano ovde:
ugradjeni java observer i serijalizacija - objasnjenje

Ne vidim potrebu da radis sa ugradjenim Observer klasama iz jave
jer one pored ogranicenja za serijalizacijom imaju i projektna ogranicenja npr
"Observable" je klasa a ne interface pa moras da je uradis extends.
Posto visestruko nasledjivanje nije dozvoljeno
sta ces da radis ako imas potrebu da extendujes jos i neku drugu klasu pored nje?
A posto ne postoji Obervable interface ne mozes da kreiras svoju implementaciju i iskoritis je.

Dakle resenje je da napravis svoj Observer pattern primer.
Patern si vec provalio tako da velike filozofije nema,
primera na netu ima do mile volje.

Radi sa interface Observerom i njegovim konkretnim implementacijama
kreiraj Subject koji ce u runtime da puni listu konkretnih observera i notifikuje ih kada se desi neki event i gotovo.
Izbegavaj extends. Sve si sam napisao, implementiras Serializable gde ti treba i sve je cool.

Takodje izbegavaj da iz klase X zoves klasu Y a da ona zove Z i da sve to pise u klasi X ("Only talk to your immediate friends")
X treba samo da kaze Y daj mi sve sto znas o Z i detalji tog poziva ne treba ni da se vide u X
vec da budu spremni za poziv u Y.

pozz






 
Odgovor na temu

Bope

Član broj: 62233
Poruke: 291
*.adsl.verat.net.

Sajt: www.shortsms.me


+4 Profil

icon Re: Observer-Observable pattern i serijalizacija24.04.2010. u 02:11 - pre 147 meseci
Hvala na odgovoru, puno mi je pomogao!
Taj "X->Y->Z" haos sam stvorio jer sam bio na ivici nerava pa sam kucao "samo da proradi".
Vec duze programiram u C#-u, i onda mi je nagli prelazak na Javu (sa kojom sam radio pre C#-a) bio kao shok. Narocito nedostatak C# delegata i dogadjaja :)))
 
Odgovor na temu

[es] :: Java :: Observer-Observable pattern i serijalizacija

[ Pregleda: 2039 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.