Avatar billede fanatic Nybegynder
10. marts 2006 - 13:09 Der er 5 kommentarer og
1 løsning

Observer og Command patterns

Hej Eksperter.

Jeg sidder og læser lidt om observer og command patterns.

Pludselig kan jeg slet ikke se hvad forskellen er på de to? De er vel ikke ens?

Et observer pattern har et subject og nogle observers. Subjectet kalder notify og løber en liste igennem med observers. Her kaldes update på hver enkelt.

Et command pattern har en invoker, et command-objekt og en receiver. Invokeren udfører en execute på command-objectet som så kalder en action i receiver'en.

Jamen er det ikke præcis det samme de to gør???? I sidste ende kalder de begge en metode der skal udføres den ene hedder update() og den anden kaldes action().
Avatar billede arne_v Ekspert
10. marts 2006 - 13:38 #1
nej

observer

A1->B : kald mig lige når du ændrer dig
A2->B : kald mig lige når du ændrer dig
B->A1 : jeg har ændret mig
B->A2 : jeg har ændret mig
A1->B : giv mig info X
A2->B : giv mig info Y

command

A1->B : udfør den her kommando X
A2->B : udfør den her kommando Y
B    : hmm - jeg aner ikke hvad X gør men jeg udfører den
B    : hmm - jeg aner ikke hvad Y gør men jeg udfører den
Avatar billede fanatic Nybegynder
10. marts 2006 - 13:44 #2
Hej Arne.
hmm...okay men under command pattern:

Er A1 hvad der svare til invoker og B en concreteCommand?
Avatar billede arne_v Ekspert
10. marts 2006 - 14:24 #3
A1 og A2 er client
B er invoker
X og Y er commands
Avatar billede soreno Praktikant
10. marts 2006 - 15:57 #4
Man har også mulighed for at putte en unExecute på et command objekt.
Dermed kan man opnå transaktionlignende opførsel.

Det vil ikke rigtig give mening med observer.
Avatar billede fanatic Nybegynder
07. april 2006 - 13:37 #5
Tak for hjælpen begge to. Arne, sender du ikke lige et svar så vi kan få lukket denne.
Avatar billede arne_v Ekspert
07. april 2006 - 13:37 #6
gerne
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester