🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #141861

Re: Ciekawy problem projektowy

#141861
From: matusz84
Date: Wed, 22 Oct 2008 09:22
58 lines
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-mail
References: <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