🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: jak to jest z tymi JavaBeans

#153755
From: x
Date: Fri, 04 Jan 2013 07:41
86 lines
3837 bytes
W dniu 2013-01-03 23:40, Arivald pisze:
> W dniu 2013-01-03 23:20, x pisze:
>> W dniu 2013-01-03 22:51, Arivald pisze:
>>> W dniu 2013-01-03 21:54, Jadalbert pisze:
>>>> W dniu 2013-01-03 21:33, x pisze:
>>>>> W dniu 2013-01-03 09:40, Jadalbert pisze:
>>>> 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.
>>>
>>> To raczej miało tak wyglądać:
>>>
>>> klasa 1 to POJO (http://pl.wikipedia.org/wiki/Plain_Old_Java_Object),
>>> ergo nie ma żadnego przetwarzania, tylko dane. Może być beanem (bez
>>> serializacji).
>>>
>>> do tego druga klasa (lub kolekcja klas) realizująca jakieś
>>> przetwarzanie.
>>>
>>> pełny przykład:
>>>
>>>    public class First {
>>>      private double x;
>>>      private double y;
>>>      private double z;
>>>
>>>      public double getX() {
>>>        return x;
>>>      }
>>>      public void setX(double x) {
>>>        this.x = x;
>>>      }
>>>      public double getY() {
>>>        return y;
>>>      }
>>>      public void setY(double y) {
>>>        this.y = y;
>>>      }
>>>      public double getZ() {
>>>        return z;
>>>      }
>>>      public void setZ(double z) {
>>>        this.z = z;
>>>      }
>>>    }
>>
>> To ma ręce i nogi, oczywiście przy założeniu że koniecznie chcemy
>> JavaBeana...
>>
>
> Oczywiście wystarczyły by publiczne pola, ale OP pytał o beany.
>
>>>
>>>    public class Second {
>>>      private First first;
>>>
>>>      public Second(First first) {
>>>        this.first = first;
>>>      }
>>>
>>>    public double getV() {
>>>      return first.getX() * first.getY() * first.getZ();
>>>    }
>>
>> To jest bez sensu. Pojedynczą operację obliczenia V rozbiłeś na dwie:
>> utworzenia nowego obiektu klasy Second (po co ???) i właściwego
>> obliczenia. No i znowu wygląda na to, że V jest właściwością obiektu
>> klasy Second, a nie jest.
>
> Założenie jest takie że klasa Second realizuje wiele różnych obliczeń. W
> przykładzie jest tylko jedno.
>
> Osobiście lubię ten model że konkretną instancję klasy danych na stałe
> wiąże się z instancją klasy obliczeniowej.

W sumie to jakiś czas temu użyłem tego podejścia w Scali i było OK ;-)

Pozdrawiam,
Marcin Jaskolski
Technical Details
Message-ID: <50e687a2$0$1231$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-01.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> <50e5eff0$0$1295$65785112@news.neostrada.pl> <kc4uho$urh$1@news.dialog.net.pl> <50e60438$0$1306$65785112@news.neostrada.pl> <kc51ds$fn$1@news.dialog.net.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-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Date: Fri, 04 Jan 2013 08:41:17 +0100
From: x <x@x.x>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20121010 Thunderbird/16.0.1
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> <50e5eff0$0$1295$65785112@news.neostrada.pl> <kc4uho$urh$1@news.dialog.net.pl> <50e60438$0$1306$65785112@news.neostrada.pl> <kc51ds$fn$1@news.dialog.net.pl>
In-Reply-To: <kc51ds$fn$1@news.dialog.net.pl>
Lines: 86
Message-ID: <50e687a2$0$1231$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 178.42.13.11
X-Trace: 1357285282 unt-rea-b-01.news.neostrada.pl 1231 178.42.13.11:4774
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit