/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Observer pattern...
Fra : Rune Klausen


Dato : 23-07-04 03:17

Hejsa jeg søger en god gennemgang af Observer pattern da jeg har søgt en del
uden at finde nogle helt vildt gode eksempler.
Jeg har forstået teorien bag, men mangler kode eksempler gerne java filerne
så jeg kan se helt præcis hvordan det kan implementeres...


-Rune



 
 
Peter Kjellerup Rasm~ (23-07-2004)
Kommentar
Fra : Peter Kjellerup Rasm~


Dato : 23-07-04 13:49

Rune Klausen wrote:

> Hejsa jeg søger en god gennemgang af Observer pattern da jeg har søgt en del
> uden at finde nogle helt vildt gode eksempler.
> Jeg har forstået teorien bag, men mangler kode eksempler gerne java filerne
> så jeg kan se helt præcis hvordan det kan implementeres...
Google er din ven:
http://www.google.com/search?q=java+observer+pattern&sourceid=firefox&start=0&start=0&ie=utf-8&oe=utf-8
Eller mere specifikt:
http://www.codeguru.com/java/tij/tij0175.shtml

mvh
Peter

Soren Kuula (25-07-2004)
Kommentar
Fra : Soren Kuula


Dato : 25-07-04 21:55

Rune Klausen wrote:
> Hejsa jeg søger en god gennemgang af Observer pattern da jeg har søgt en del
> uden at finde nogle helt vildt gode eksempler.

Swing er propfyld med den slags. Alle add...Listner metoderne, alle
implementationer af diverse ..Listener interfaces, og alle extensions af
EventObject (hedder det vist) er efter Observer modellen.

> Jeg har forstået teorien bag, men mangler kode eksempler gerne java
filerne
> så jeg kan se helt præcis hvordan det kan implementeres...

Hvis du finder et kodeeksempel i en Swing tutorial, hvor der sker noget
når du trykker på en knap ell. l., så er det hvad du leder efter.

Forresten er det IMHO et slam-pattern i mange henseender. Der opstår
nemt event cykler, specielt hvis man har mere end en viewkomponent på en
model. Eksempel:

En editerbar JComboBox med afgiver et event (TextEvent) når der
editeres. Jeg implementerer noget sådan at valgmulighederne i boxen
indskrænkes efterhånden som en søgestreng indtastes (det hedder
forresten Continous Filter user interaction pattern). Men nogen gange
giver denne udskiftning af comboboxens models indhold anledning til en
ny selektion, og det giver anledning til at en ny tekst bliver sat ind i
det editerbare tekstfelt. Det giver så anledning til ... forfra osv.
lige til eksekutionsstakken løber over.
Det er heller ikke sjovt at lave dynamisk konfigurerede UIs med Observer
pattern - der kan nemt opstå memory leaks hvis man ikke husker at fjerne
en komponent man ønsker at smide væk som listener overalt hvor den er
registreret.

Jeg har i hvert fald set masser ekspemler på projekter der blev
skamferet pga. problemer med Observer. Det er selvfølgelig værd lige at
lære, men i øvrigt ville jeg undgå det :)

MVH
Søren


Rune Klausen (26-07-2004)
Kommentar
Fra : Rune Klausen


Dato : 26-07-04 12:24


"Soren Kuula" <dongfang-remove_this@remove_this-bitplanet.net> wrote in
message news:f6VMc.27351$Vf.1519471@news000.worldonline.dk...

> Jeg har i hvert fald set masser ekspemler på projekter der blev
> skamferet pga. problemer med Observer. Det er selvfølgelig værd lige at
> lære, men i øvrigt ville jeg undgå det :)

Ok, hvad ville du så gøre i stedet for ?

-Rune



Soren Kuula (02-08-2004)
Kommentar
Fra : Soren Kuula


Dato : 02-08-04 22:30

Rune Klausen wrote:

>>Jeg har i hvert fald set masser ekspemler på projekter der blev
>>skamferet pga. problemer med Observer. Det er selvfølgelig værd lige at
>>lære, men i øvrigt ville jeg undgå det :)

> Ok, hvad ville du så gøre i stedet for ?

Ja, det ved jeg ikke helt endnu !!

Men man kunne måske sætte sig ned og tænke lidt over et framework der
bruger grafer (altså datastrukturen, ikke den slags "grafer" til at
visualsere mat. funktioner) til at propagere opdateringer. Det skal
selvfølgelig altsammen tænkes igennem og prøves af, men jeg tror at en
højere abstraktion til event propagation end Observer ville være godt i
mange sammenhænge.

Konkret, hvis du bare skal have lavet noget lige nu: Stadig Observer.

MVH
Søren


Soren Kuula (02-08-2004)
Kommentar
Fra : Soren Kuula


Dato : 02-08-04 22:36

> Konkret, hvis du bare skal have lavet noget lige nu: Stadig Observer.

Hvis du har en samling af X komponenter der er forbundet på kryds og
tværs med Observer, overvej om der kunne laves noget smart med en
central Observer for allesammen, og forbyd at de underordnede
komponenter er hinandens observere. Det giver vist (sammen med nogle
kontrolvariabler) en pæn mulighed for at

- lave en overordnet metode til at fjerne en komponent som Observer overalt

- kvæle event cycles

Min ide fra før er så: Generaliser dette.

MVH
Søren


Rune Klausen (06-08-2004)
Kommentar
Fra : Rune Klausen


Dato : 06-08-04 19:06


"Soren Kuula" <dongfang-remove_this@remove_this-bitplanet.net> wrote in
message news:ftyPc.28966$Vf.1729446@news000.worldonline.dk...
> > Konkret, hvis du bare skal have lavet noget lige nu: Stadig Observer.
>
> Hvis du har en samling af X komponenter der er forbundet på kryds og
> tværs med Observer, overvej om der kunne laves noget smart med en
> central Observer for allesammen, og forbyd at de underordnede
> komponenter er hinandens observere. Det giver vist (sammen med nogle
> kontrolvariabler) en pæn mulighed for at
>
> - lave en overordnet metode til at fjerne en komponent som Observer
overalt
>
> - kvæle event cycles
>
> Min ide fra før er så: Generaliser dette.

Det lyder ikke helt tosset :)

-Rune



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408918
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste