🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: jak to jest z tymi JavaBeans

#153750
From: Jadalbert
Date: Thu, 03 Jan 2013 20:54
74 lines
3617 bytes
W dniu 2013-01-03 21:33, x pisze:
> W dniu 2013-01-03 09:40, Jadalbert pisze:
>> problem (czy raczej moja niewiedza) jest taki
>> Mam program liczący pewne wielkości i, dajmy na
>> to w uproszczeniu, w
>> klasie Geom metodę
>> public double V(double x, double y, double z) {
>>      return x * y * z;
>> }
>> gdzieś tam jest to wywoływane:
>> V_ = Geom.V(2,3,4);
>> czyli trzeba wstawić trzy argumenty. Wszystko
>> działa bez zarzutu.
>> Teraz, z klas liczących chcę zrobić beans'y.
>> Czyli powinno być tak (opierając się na
>> powyższym przykładzie):
>> private double v;
>> ...
>> public double getV() {return v};
>> public void setV(double v) {this.v = v;}
>>
>> i tu, zgodnie z konwencją, metoda set ma tylko
>> jeden argument, a ja
>> potrzebuję przekazać 3. Jak wybrnąć sensownie z
>> takiej sytuacji? Osobna
>> klasa licząca + osobna typu beans? W beans'ie
>> dodatkowe metody liczące?
>> Można oczywiście już w implementacji dołożyć
>> odpowiednie zmienne, ale co
>> wtedy przekazywać jako argument?
>> Najchętniej wszystko co dotyczy liczenia i, że
>> tak powiem, formalnej
>> struktury beans'ów chciałbym mieć w jednej klasie.
>
> Konwencja JavaBeans ma zastosowanie w przypadku
> klas, których obiekty mają jakieś "pola" lub
> "własności". W przypadku klasy Geom to nie zachodzi.
>
> Czy jest jakiś konkretny powód, dla którego chcesz
> zastosować JavaBeans ?
>
> Możesz oczywiście wykonać swoje obliczenie w ten
> sposób:
>
> Geom g = new Geom();
> g.setX(2);
> g.setY(3);
> g.setZ(4);
> println(g.getV());
>
> ale to jest po prostu bez sensu.
>
> Pozdrawiam,
> Marcin Jaskolski
W klasie Geom rzeczywiście nie ma to sensu ale to 
tylko prosty przykład. Inne klasy mają własności.
Nie mam dużego doświadczenia w javie, ale 
pamiętam, że kiedyś czytałem, że pisze się jakby 
dwie klasy. Jedna to typowy beans z polami np. V_, 
a druga to klasa licząca to V i nie będąca beansem.
i wtedy będzie 1.setV_(2.V);
tak w uproszczeniu rzecz jasna.
Ale jestem raz leniwy, a dwa nie wiem czy to aby 
na pewno jest sensowne i poprawne.

A powód tych beansów jest taki, że się 
przeliczyłem w tym by mieć prosty (tylko java) 
program do robienia obliczeń z danych wsadowych. 
Zagadnienie jednak wymaga jakiegoś interfejsu 
zjadliwego dla użytkownika stąd chcę to przerobić 
na jsf, jsp czy tak jakoś. Choćby prezentacja 
wyników - za dużo ich na konsolę czy plik 
tekstowy. Prócz tego te beansy będą mieć 
zastosowanie przy rozbudowie aplikacji.
Technical Details
Message-ID: <50e5eff0$0$1295$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <50e54418$0$1298$65785112@news.neostrada.pl> <50e5eb16$0$26696$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!newsfeed2.atman.pl!newsfeed.atman.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Date: Thu, 03 Jan 2013 21:54:13 +0100
From: Jadalbert <maxorin@poczta.onet.pl>
Reply-To: maxorin@poczta.onet.pl
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/17.0 Thunderbird/17.0
MIME-Version: 1.0
Newsgroups: pl.comp.lang.java
Subject: Re: jak to jest z tymi JavaBeans
References: <50e54418$0$1298$65785112@news.neostrada.pl> <50e5eb16$0$26696$65785112@news.neostrada.pl>
In-Reply-To: <50e5eb16$0$26696$65785112@news.neostrada.pl>
Lines: 74
Message-ID: <50e5eff0$0$1295$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.5.165.231
X-Trace: 1357246448 unt-rea-a-02.news.neostrada.pl 1295 83.5.165.231:3291
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit