🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #13754

Re: Transfer objects

#13754
From: Filip Sielimowicz
Date: Sun, 11 Dec 2005 13:52
103 lines
5631 bytes
Użytkownik "Michał Słocinski" <nobody@nowhere.com> napisał w wiadomości 
news:slrndpo7kg.a7o.nobody@localhost.localdomain...
> Dnia 07.12.2005 Przemek Pokrywka <adres@zastrzezony.com> napisał/a:
>> Czy transfer objects (jako pattern J2EE) są obiektowe?
>> Bo mi się wydaje, że nie
>>
>
> W przypadku transfer object, wzorzec ten wprowadzony został w celu
> optymalizacji zdalnych wywołań metod, a jak wiadomo - każda optymalizacja 
> ma
> zwykle jakieś efekty uboczne, którymi zwykle jest koszt związany ze
> zmniejszoną czytelnością kodu albo uzależnieniem od platformy sprzętowej 
> (akurat
> w tym przypadku ten drugi aspekt odpada :-)). Utrata obiektowości jest w
> tym przypadku ceną za wydajność.

Ja bym nie powiedział, że to kwestia wydajności ...
Wydaje mi się raczej, że nadużywa się tu terminu "utrata obiektowości",
a dokładniej: zaczyna się postrzegać jako "nieobiektowe" wszystko to,
co "niesamodzielne i nieuniwersalne".
Natomiast nie można tracić z horyzontu podstawowej kwestii: obiektowość ma 
służyć
wierniejszemu odwzorowywaniu rzeczywistości, a nie sobie samej. Wydaje mi 
się, że
bardzo często miesza się różne poziomy analizy, projektu i implementacji. 
Mam wrażenie
że niektórzy wydają z siebie wielkie westchnienia zdumienia, kiedy okazuje 
się, że
obiektowość zaangażowana na poziomie implementacyjnym, technicznym ma 
zupełnie inną
twarz niż obiektowość działająca niby w tym samym obszarze biznesowym, ale 
na poziomie
analizy i projektu. A tymczasem ja się dziwię, że inni się tak dziwią ;).

Wiele wzorców projektowych wręcz jawnie rozpina dane od funkcji i widzimy to 
zarówno
w idei takiej jak MVC, jak też we wspomnianym TransferObject i występujących 
w kontekście
DAO i BusinessObject. Niektórzy krzyczą, że to jakieś łamanie zasad 
obiektowości.
A ja mówię: zależy gdzie. Jeśli ktoś obiektowość rozumie jako: "obiekt musi 
odwzorowywać
całą wiedzę zgromadzoną we wszechświecie o tym, do czego jest przydatny" to 
ja mówię
"bzdura totalna". To nie ma po prostu żadnego przełożenia na rzeczywistość.

Mamy nóż i mamy chleb. Pytanie: czy to nóż powinien wiedzieć, jak ma kroić 
chleb, czy
chleb ma wiedzieć, jak dać się pokroić nożowi ? Ani jedno ani drugie. To 
człowiek
wie, jak użyć noża, by pokroić chleb. I jak zjeść chleb. Albo jak rzucać 
nożem. Albo jak
chleb pokruszyć i rzucić ptactwu. Ptactwo samo sobie chleba nie drobi (mimo, 
że drobiem
jest, jak mówią). Chleb się też sam raczej dla ptactwa nie drobi, choć można 
by tu siespierać,
czy rzeczywiście sięsam z czasem nie pokruszy ...

Jak mistrz cukierni woła: "Kajtek, bierz no te paletę z chlebem i pędź na 
Marszałkowską
do sklepu, bo dziś otwierają wcześniej", to sprawa jest oczywista: to Kajtek 
ma wiedzieć,
jak wziąć ten TransferObject i gdzie z nim polecieć. Bo chyba nikt mi nie 
powie, że
paleta powinna mieć metodę "użyj Kajtka do tego żeby się przenieść na 
Marszałkowską".

Wcale to nie znaczy jednak, że paleta z chlebami to jest jakaś 
prehistoryczna struktura
a nie obiekt, więc jest fe. Wcale nie: paleta jest obiektem, tyle, że ktoś 
zauważył, że
jego kompetencje w kwestii wpływu na rzeczywistość są bardzo ograniczone, 
więc nie snuł
fantazji na temat: "a gdyby tak moja paleta potrafiła sama podpiąć się do 
NASA, złamać
szyfry, zamienic się miejscem z głównym astronautą to moglibyśmy już dziś 
stosunkowo tanio
dostarczyć świeży chleb na Marsa". Zamiast fantazji mamy konkret w postaci 
metody:
"zatrzaśnij", którą Kajtek używa, kiedy układa wiele palet w stos i chce, by 
ta co na
górze prostą zapadką przymocowała się do tej, co pod nią. To jest właśnie 
to, czego
oczekuje Kajtek od palety w kwestii obiektowości i to, w czym paleta może 
być i jak
najbardziej jest kompetentna. Powiem nawet więcej: paleta czuje ogromną 
przyjemność,
kiedy może tego typu zadanie wykonać sprawnie i profesjonalnie, natomiast 
czuje ogromne
przerażenie, kiedy ktoś zaczyna do niej zamiast chleba wkładać system 
nawigacji satelitarnej
i puszczając oko szepcze: no moja mała, już niedługo będziesz ...

Uważam, że należy dbać o to, by nie pakować kosmicznych problemów na barki 
prostych narzędzi
cukiernika, bo przerażenie i dezorientacja tychże bezpośrednio przekłada się 
na to, że się
potem stos palet najzwyczajniej nie trzyma kupy i Kajtek na Marszałkowskiej 
otwierając drzwi
od samochodu wysypuje chleb klienta prosto na ulicę.

A pogoda dziś nie najlepsza. 
Technical Details
Message-ID: <dnhavr$olf$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
References: <dn7emu$ke3$1@news.onet.pl> <slrndpo7kg.a7o.nobody@localhost.localdomain>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
From: "Filip Sielimowicz" <sielim@poczta.onet.pl>
Newsgroups: pl.comp.objects
Subject: Re: Transfer objects
Date: Sun, 11 Dec 2005 14:52:56 +0100
Organization: Onet.pl
Lines: 104
Message-ID: <dnhavr$olf$1@news.onet.pl>
References: <dn7emu$ke3$1@news.onet.pl> <slrndpo7kg.a7o.nobody@localhost.localdomain>
NNTP-Posting-Host: host-217-172-233-228.gdynia.mm.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1134309180 25263 217.172.233.228 (11 Dec 2005 13:53:00 GMT)
X-Complaints-To: usenet@news.onet.pl
NNTP-Posting-Date: Sun, 11 Dec 2005 13:53:00 +0000 (UTC)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-Sender: HWuT3ZQ16+B3O4dnsZlCZgocIOkeW3FM
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-Priority: 3
X-MSMail-Priority: Normal
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit