Article View: pl.comp.objects
Article #14846kolekcja/manager obiektów
From: Przemek Pokrywka
Date: Mon, 10 Jul 2006 19:22
Date: Mon, 10 Jul 2006 19:22
34 lines
2103 bytes
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-mailShow 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