Article View: pl.comp.lang.java
Article #153744Re: jak to jest z tymi JavaBeans
From: Arivald
Date: Thu, 03 Jan 2013 21:15
Date: Thu, 03 Jan 2013 21:15
44 lines
2840 bytes
2840 bytes
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.
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.
Tak samo jak w setterze sprawdza się czy nowa wartość jest inna niż
dotychczasowa, i jeśli tak to podejmuje się stosowną akcję (no
odrysowanie kontrolki po zmianie jej rozmiaru czy koloru).
A Java nie ma natywnego wsparcia dla właściwości, ma tyko konwencję
"Java beans", która symuluje właściwości. Może dlatego tyle
nieporozumień z tym związanych.
--
Arivald
Technical Details
Message-ID:
<kc4sf5$tqn$1@news.dialog.net.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.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 22:15:51 +0100 Organization: Dialog Net Lines: 46 Message-ID: <kc4sf5$tqn$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> NNTP-Posting-Host: dynamic-78-8-99-8.ssp.dialog.net.pl Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1357247781 30551 78.8.99.8 (3 Jan 2013 21:16:21 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Thu, 3 Jan 2013 21:16:21 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20121128 Thunderbird/18.0 In-Reply-To: <50e5ee6f$0$1210$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