Article View: pl.comp.lang.java
Article #153746Re: jak to jest z tymi JavaBeans
From: Arivald
Date: Thu, 03 Jan 2013 22:06
Date: Thu, 03 Jan 2013 22:06
64 lines
3504 bytes
3504 bytes
W dniu 2013-01-03 22:53, x pisze:
> W dniu 2013-01-03 22:15, Arivald pisze:
>> W dniu 2013-01-03 21:47, x pisze:
>>> W dniu 2013-01-03 11:15, Arivald pisze:
>>>> W dniu 2013-01-03 11:03, Jadalbert pisze:
>>>>> W dniu 2013-01-03 10:18, Arivald pisze:
>>>>>
>>>>> Z tego by wynikało, że aby zachować konwencje beans'a wystarczy mi
>>>>> jedynie odczytywać wartość:
>>>>>
>>>>> private double v;
>>>>> ...
>>>>> public double getV() {
>>>>> return kontener.x * kontener.y * kontener.z;
>>>>> }
>>>>> Czy dobrze rozumiem?
>>>>
>>>> Dokładnie tak.
>>>>
>>>
>>> Oj to nie wygląda za dobrze. Przede wszystkim dlatego, że większość
>>> programistów zinterpretuje nazwę getV() jako "zwracam pole V". Tymczasem
>>> metoda nawet nie operuje na polach obiektu na rzecz którego jest
>>> wywoływana, tylko na obiekcie "kontener"...
>>
>> Większość programistów? Może Javowców.
>> A interpretacja jest nie "zwracam pole V", tylko "zwracam wartość
>> właściwości 'V' ". A że właściwość jest zależna od innych, to trzeba ją
>> obliczyć. Gdyby chodziło tylko o dostęp do pola, to nie miało by sensu w
>> ogóle robienie settera czy gettera.
>
> Tylko niech ta właściwość dotyczy obiektu na rzecz którego jest
> wywoływana, a nie jakiegoś innego.
>
Ale czemu? To nie ma uzasadnienia.
Dla przykładu, mamy klasę Samochod:
class Samochod {
Siedzenie kierowca;
Siedzenie pasazerZPrzodu;
Siedzenie kanapaTylna;
int getIloscOsob() {
return kierowca.getIloscOsob()
+ pasazerZPrzodu.getIloscOsob()
+ kanapaTylna.getIloscOsob();
}
}
>> W językach gdzie właściwości (property) są standardem (C#, VB, Delphi
>> czy JavaScript), jest to normalne podejście żeby robić jakieś proste
>> obliczenie w getterze. A czasem nawet skomplikowane działania typu lazy
>> init, czy obsługa cache.
>
> W Javie również jest to bardzo powszechna praktyka. Ale trzeba z tym
> podejściem uważać, łatwo narobić bałaganu.
Oczywiście, z tym się w pełni zgadzam.
--
Arivald
Technical Details
Message-ID:
<kc4vea$v96$1@news.dialog.net.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder4.news.weretis.net!newsfeed.straub-nv.de!zen.net.uk!dedekind.zen.co.uk!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!news.dialog.net.pl!not-for-mailReferences:
<50e54418$0$1298$65785112@news.neostrada.pl> <kc3ieu$a39$1@news.dialog.net.pl> <50e5578d$0$1213$65785112@news.neostrada.pl> <kc3loo$bga$1@news.dialog.net.pl> <50e5ee6f$0$1210$65785112@news.neostrada.pl> <kc4sf5$tqn$1@news.dialog.net.pl> <50e5fdc3$0$1211$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder4.news.weretis.net!newsfeed.straub-nv.de!zen.net.uk!dedekind.zen.co.uk!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!news.dialog.net.pl!not-for-mail From: Arivald <NOSPAMarivald@interia.pl> Newsgroups: pl.comp.lang.java Subject: Re: jak to jest z tymi JavaBeans Date: Thu, 03 Jan 2013 23:06:32 +0100 Organization: Dialog Net Lines: 66 Message-ID: <kc4vea$v96$1@news.dialog.net.pl> References: <50e54418$0$1298$65785112@news.neostrada.pl> <kc3ieu$a39$1@news.dialog.net.pl> <50e5578d$0$1213$65785112@news.neostrada.pl> <kc3loo$bga$1@news.dialog.net.pl> <50e5ee6f$0$1210$65785112@news.neostrada.pl> <kc4sf5$tqn$1@news.dialog.net.pl> <50e5fdc3$0$1211$65785112@news.neostrada.pl> NNTP-Posting-Host: dynamic-78-8-99-8.ssp.dialog.net.pl Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1357250826 32038 78.8.99.8 (3 Jan 2013 22:07:06 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Thu, 3 Jan 2013 22:07:06 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20121128 Thunderbird/18.0 In-Reply-To: <50e5fdc3$0$1211$65785112@news.neostrada.pl> X-Antivirus: avast! (VPS 130103-0, 2013-01-03), Outbound message X-Antivirus-Status: Clean Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit