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?