🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #14846

kolekcja/manager obiektów

#14846
From: Przemek Pokrywka
Date: Mon, 10 Jul 2006 19:22
34 lines
2103 bytes
Witam Państwa!

W praktyce często mam do czynienia z następującą sytuacją:
pojedynczy obiekt (nazwę go manager) jest centralnym punktem dostępu do 
wielu obiektów jednego typu (dzieci). Cykl życiowy tych obiektów jest 
taki, że manager rozpoczyna życie przed dziećmi, które kończą swoje 
życia przed końcem życia managera. Manager umożliwia odnajdywanie swoich 
dzieci wg określonych kryteriów oraz tworzenie ich.

Jak na razie wszystko jest ok, ale zaskakująco często widuję 
towarzyszącą temu wzorcowi praktykę, która już nie jest dla mnie taka ok.

Mianowicie bardzo często obiekt managera poza udostępnianiem metod, 
które logicznie nie pasują do dzieci, jak np. wyszukiwanie zawiera 
metody służące do operowania na pojedynczych dzieciach.

Np.
SessionManager udostępnia metodę

	void setDeactivated(Session s)

której cała implementacja to:

	s.setDeactivated();

Czy nie byłoby lepiej, gdyby to użytkownik operował bezpośrednio na 
Session? Przedstawiony schemat, który często napotykam, pachnie mi 
antywzorcem Man-In-The-Middle.

Wydaje mi się, że jeśli nawet taki manager chce koniecznie kontrolować 
zmiany w swoich dzieciach, to lepszy do tego jest wzorzec Observer, 
zgodzą się ze mną Państwo?

Przemek Pokrywka
Technical Details
Message-ID: <e8u9d9$bf1$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
From: Przemek Pokrywka <adres@zastrzezony.com>
Newsgroups: pl.comp.objects
Subject: kolekcja/manager obiektów
Date: Mon, 10 Jul 2006 21:22:01 +0200
Organization: Onet.pl
Lines: 34
Message-ID: <e8u9d9$bf1$1@news.onet.pl>
NNTP-Posting-Host: 114.inet.polhost.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1152559338 11745 80.48.120.114 (10 Jul 2006 19:22:18 GMT)
X-Complaints-To: usenet@news.onet.pl
NNTP-Posting-Date: Mon, 10 Jul 2006 19:22:18 +0000 (UTC)
X-Sender: 5aB4pqMdeQG1O30L902dNmlAzoKeNKcS
X-Accept-Language: pl, en-us, en
User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit