🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #13868

Re: Czy observer ma prawo zablokować zmianę stanu obserwowanego obiektu ?

#13868
From: giku1
Date: Fri, 03 Feb 2006 11:26
82 lines
4230 bytes
Filip Sielimowicz wrote:
> 
> Użytkownik "a1" <a1@no.spam> napisał w wiadomości 
> news:drpqhk$2o8$2@inews.gazeta.pl...
> 
>> Sektor van Skijlen wrote:
>> > Dnia Tue, 31 Jan 2006 14:19:45 +0100, Filip Sielimowicz skrobie:
>>
>> > Wygląda na to, że można.
>> >
>> >   Known Uses
>> >
>> > Smalltalk Model/View/Controller (MVC). User interface framework while
>> Model is
>> > subject and View is observer.
>>
>> > Skoro za pomocą widoku można aktualizować model, to znaczy, że
>> Observer może
>> > ingerować w model.
>>
>> Tylko ze widok nie powinnien aktualizowac modelu do tego sluzy kontroler.
>>
>> Do OP
>> Np. javie dosyc szeroko sa stosowane VetoableListenery, i mechanizm 
>> calkiem dobrze sie sprawdza. W koncu Dessign Patterns to nie biblia i 
>> nie jest koniecznym literalne trzymanie sie przedstawionych konceptow.
> 
> 
> Ja się właśnie zastanawiam, czy kilku spraw, które dotąd nazywałem
> listenerami nie zacząć nazywać observerami (w zasadzie już doszedłem do 
> wniosku,
> że warto). Listenery nie realizują dokładnie tego, co jest zapisane we 
> wzorcu
> observer, bo wiele z nich ma np. kilka metod dla różnych zdarzeń zamiast
> jednej metody update (np MouseListener, WindowListener). Ale za to wzorzec
> jest bardziej zrozumiały i lepiej porządkuje nazewnictwo. Interfejsy 
> listenerów
> bardzo często mają nazwy pochodne od zdarzeń, które je interesują 
> (ActionListener,
> PropertyChangeListener), natomiast interfejsy Observerów pozostają albo 
> na poziomie
> ogólnym (po prostu Observer), albo są pochodną nazwy obserwowanego obiektu
> (nie zdarzeń). Zaś dopiero specyficzne implementacje nazwami wchodzą w 
> szczegóły
> zastosowań i np. eksponują co dokładnie w obserwowanym obiekcie je 
> interesuje.
> Można np. zobaczyć to tu:
> http://www.javaworld.com/javaworld/javatips/jw-javatip29.html
> 
> Takie podejście np. w moim wypadku skłoniło mnie do tego, by mnożące
> się interfejsy listenerów jakiegoś wyjątkowo interesujacego, wiecznie 
> aktywnego
> obiektu (u mnie to maszyna stanów, która poza stanami ma jeszcze kilka 
> innych rzeczy,
> np. cykl życia z następujacymi po sobie fazami, wywołuje funkcje 
> biznesowe, w ramach
> których są otwierane i zamykane transakcje itp) schować za jednym 
> zwartym interfejsem
> Observera z licznymi metodami odpowiadajacymi zmianom stanów, zmianom 
> faz życia,
> zmianom stanów transakcji bd itp).
> 
> Ma to tę zaletę, że rzadko kto obserwujacy taki złożony obiekt jest 
> nastawiony
> na nasłuch tylko jednego zdarzenia - zazwyczaj interesuje go ich kilka. 
> Zamiast
> wiec implementować wiele listenerów implementujemy jeden interfejs 
> observera.
> Zmiana właściwie jest kosmetyczna - ale dużo bardziej zwarta na 
> diagramach np.
> diagramach klas, gdzie mamy jeden observer z metodami zamiast kilku 
> listenerów.
> Na takim diagramie od razu widać zastosowanie konkretnego wzorca 
> projektowego
> bez konieczności wprowadzania dodatkowego opisu typu "ten interfejs i 
> ten i ten
> są observerami, a tamten już coś innego".
> 
> Ma to wadę wydajnościową, ale kwestię pominę.
> 

Nic dodac nic ujac ! :)
Technical Details
Message-ID: <drveka$92i$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <drno5h$mq9$1@news.onet.pl> <dro798$5ma$2@kujawiak.man.lodz.pl> <drpqhk$2o8$2@inews.gazeta.pl> <drtpuh$q44$1@news.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: giku1 <giku@poczta.fm>
Newsgroups: pl.comp.objects
Subject: Re: Czy observer ma prawo zablokować zmianę
 stanu obserwowanego obiektu ?
Date: Fri, 03 Feb 2006 12:26:02 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 82
Message-ID: <drveka$92i$1@inews.gazeta.pl>
References: <drno5h$mq9$1@news.onet.pl> <dro798$5ma$2@kujawiak.man.lodz.pl> <drpqhk$2o8$2@inews.gazeta.pl> <drtpuh$q44$1@news.onet.pl>
NNTP-Posting-Host: 195.94.213.2
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1138965962 9298 195.94.213.2 (3 Feb 2006 11:26:02 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Fri, 3 Feb 2006 11:26:02 +0000 (UTC)
In-Reply-To: <drtpuh$q44$1@news.onet.pl>
X-Accept-Language: en-us, en
X-User: giku1
User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit