Article View: pl.comp.lang.java
Article #141861Re: Ciekawy problem projektowy
From: matusz84
Date: Wed, 22 Oct 2008 09:22
Date: Wed, 22 Oct 2008 09:22
58 lines
3695 bytes
3695 bytes
On 21 Paź, 23:45, Rafal <r...@NOSPAM.adrem.pl> wrote: > Dnia Tue, 21 Oct 2008 22:04:01 +0200, Mateusz Ludwin napisał(a): > > > Rafal rzecze: > > >> Inaczej: obiekt dao ma zarejestrowanych dwóch słuchaczy i równolegle > >> wykonuje 2 operacje raportowe. Skąd biedne DAO ma wiedzieć, któremu > >> słuchaczowi jaką informację o postępie wysłać? :) > > > No właśnie, skąd? Czemu zrobiłeś DAO singletonem? > > Bo tak już było. :) > Poza tym wyczytałem gdzieś, że beany usług i dao (i większość springowych) > powinny być singletonami. > Poza tym domyślnie spring tworzy singletony zamiast prototype. > > O już mam: > "The following diagram illustrates the Spring prototype scope. Please note > that a DAO would not typically be configured as a prototype, since a > typical DAO would not hold any conversational state; it was just easier for > this author to reuse the core of the singleton diagram." > Żródło:http://static.springframework.org/spring/docs/2.5.x/reference/beans.h... > > Ps. Ale załóżmy, że DAO jednak nie jest singletonem, SERVICE wtedy również > nie może być singletonem, nie? Hmm. Muszę doczytać o prototype w Springu bo > faktycznie nie pamietam kiedy to używałem. > Do MB jest wstrzykiwany service a do niego dao. > > Wydaje mi się, że przy użyciu prototype może bardzo ucierpieć na tym > wydajność - przy każdym dostępie do warstwy usług jest tworzony nowy obiekt > service (opakowanie w transakcje itd, itp) i dao (tu pewnie też jakieś > dodatkowe operacje)... :( > Choć wtedy mógłby zapamietywać w tych dao stan postępu. > > Z wewnatrz MB bym zrobiłbym cos takiego: > service.getDao().addListener(this); > service.getDao().reportMethod(); > service.getDao().removeListener(this); > > Ps2. Chociaż cos takiego też jest nie ładne bo service to interfejs i nie > powinien mieć metody getDao() ... > > Hmm. Ciężkie jest życie programisty purysty. :) > > -- > Pozdrawiam > Rafal Witam nie wiem czy rada coś da ale singleton powinien być wykorzystywany do obiektów bezstanowych (nie mających pamiętać czegokolwiek) DAO jest takim obiektem zwraca on dane i już (nie zapamiętuje indywidualnego statusu czegokolwiek), ja do pośrednictwa pomiędzy jsf a spring w takich kwestiach wprowadzam małe obiekty niesingletonowe w których trzymam lokalne wybory (statusy) zaciągane np z DAO (singleton). Pozdrawiam Mateusz
Technical Details
Message-ID:
<671c336a-78fa-4254-9154-0918578f341c@v53g2000hsa.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!v53g2000hsa.googlegroups.com!not-for-mailReferences:
<1gftxd4rvd75r.40k8q597vzs8.dlg@40tude.net> <gdljki.f0.1@teren.hamstera.pl> <7fv22mbe84pj.1kzjyp0zes8n4$.dlg@40tude.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!v53g2000hsa.googlegroups.com!not-for-mail From: matusz84 <matusz84@gmail.com> Newsgroups: pl.comp.lang.java Subject: Re: Ciekawy problem projektowy Date: Wed, 22 Oct 2008 02:22:21 -0700 (PDT) Organization: http://groups.google.com Lines: 70 Message-ID: <671c336a-78fa-4254-9154-0918578f341c@v53g2000hsa.googlegroups.com> References: <1gftxd4rvd75r.40k8q597vzs8.dlg@40tude.net> <gdljki.f0.1@teren.hamstera.pl> <7fv22mbe84pj.1kzjyp0zes8n4$.dlg@40tude.net> NNTP-Posting-Host: 213.76.149.185 Mime-Version: 1.0 X-Trace: posting.google.com 1224667341 16288 127.0.0.1 (22 Oct 2008 09:22:21 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Wed, 22 Oct 2008 09:22:21 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: v53g2000hsa.googlegroups.com; posting-host=213.76.149.185; posting-account=FPBwYgoAAAC4L2m4uRtuyf6LzihVDIBm User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit