Article View: pl.comp.objects
Article #14737Re: "setter" zwracający obiekt
From: Adam Karpierz
Date: Wed, 07 Jun 2006 18:53
Date: Wed, 07 Jun 2006 18:53
114 lines
4077 bytes
4077 bytes
"a1" <a1@no.spam> wrote in message Adam Karpierz wrote:
>> 1. Wieksza bledogennosc - i to bledogennosc trudna niekiedy
>> do wykrycia.
> Błedogennosc? Bo musze mniej kodu napisac?
Dokaldnie tak, bveledogennosc . W dodatku bledy paskudne do wykrycia
class thir
obj setZ(int X);
...
class other
other setX(int val);
other setY(int val);
other setZ(int val);
other other::setX(int val)
...
return this
other other::setY(int val)
...
return thir
other other::setZ(int val)
...
return this
other o = new other();
o.setX(x).setY(y).setZ(z);
Kompiluje sie, dzial , miodzio!
Tylko robi nie to co trzeba.. :(
>> 2. Nie widac "na rzecz czego"...
>> W celu upewniania koneiczne siegniecie do definicji klasy
> Mowimy o dobrze skonstruowany fluent interface, wtedy tak naprawde
> zyskujemy na czytelnosci, oczywiscie mozna napisac to w taki sposob ze nie
> bedzie wiadomo o co chodzi, ale to tyczy sie dowolnego kodu.
Tak, dowolnego
Kazdy dowolony kod zawiara ze swej natury dowolna ilosc bledow
>> 3. Mozliwe ukryte neichciane tworzenie (i usuwanie) obiektow
>> tymczasowych (np w przypadku C++).
>> Moze to powodowac paskudne efekty uboczne
> W c++ to wogole wszystko moze powodowac paskudne efekty uboczne.
W kazdym jezyku.
W Javie tez.
>> Nie widze wiekszej wygody od kasycznego zapisu.
>>
>> o.setX(x);
>> o.setY(y);
>> o.setZ(z);
>
> A tu:
>
> Order o1 = new Order();
> customer.addOrder(o1);
> OrderLine line1 = new OrderLine(6, Product.find("TAL"));
> o1.addLine(line1);
> OrderLine line2 = new OrderLine(5, Product.find("HPK"));
> o1.addLine(line2);
> OrderLine line3 = new OrderLine(3, Product.find("LGV"));
> o1.addLine(line3);
> line2.setSkippable(true);
> o1.setRush(true);
Krotko bo nie mam czasu na jalowosc.
Traktujemy sie powaznie ?
Order o = new Order();
o.with(6, "TAL");
o.with(5, "HPK")
o..skippable();
o.with(3, "LGV");
o.priorityRush();
a w niektoryc jezykach (chociaz srednio lubie taki podejscie
wylacznie w sensei synktatycznym).
with o
.with(6, "TAL");
.with(5, "HPK").skippable();
.with(3, "LGV");
.priorityRush();
.
> vs.
>
> customer.newOrder()
> .with(6, "TAL")
> .with(5, "HPK").skippable()
> .with(3, "LGV")
> .priorityRush();
>
> Bo jednak wersja duga wydaje mi sie jakby czytelniejsza. Zreszta cala ta
> idea 'metod chaining' pochodzi jednak ze znanej z roznych jezykow
> koncepcji cascade expression.
Ktora szczegolnie uwuielbiaj aparsery synktatyki
Lepije im to zostawic niz "upubliczniac"
W/w to jednak "pryszcz".
Zycze powodzenia w debuggowaniu Twojej wersji.
AK
Technical Details
Message-ID:
<e677bn$i33$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.gazeta.pl!not-for-mailReferences:
<e64lni$6bn$1@news.onet.pl> <e660l7$kgd$1@opal.icpnet.pl> <e665r3$adm$1@news.task.gda.pl> <e66afs$che$1@inews.gazeta.pl> <e66dmr$q62$1@inews.gazeta.pl> <e66joh$p6i$1@inews.gazeta.pl> <e66l9m$2j1$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.gazeta.pl!not-for-mail From: "Adam Karpierz" <karpierz@NOOOOSPAAAAMpython.pl> Newsgroups: pl.comp.objects Subject: Re: "setter" zwracający obiekt Date: Wed, 7 Jun 2006 20:53:42 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 116 Message-ID: <e677bn$i33$1@inews.gazeta.pl> References: <e64lni$6bn$1@news.onet.pl> <e660l7$kgd$1@opal.icpnet.pl> <e665r3$adm$1@news.task.gda.pl> <e66afs$che$1@inews.gazeta.pl> <e66dmr$q62$1@inews.gazeta.pl> <e66joh$p6i$1@inews.gazeta.pl> <e66l9m$2j1$1@inews.gazeta.pl> NNTP-Posting-Host: nat-plk.mentorg.com X-Trace: inews.gazeta.pl 1149706423 18531 139.181.144.34 (7 Jun 2006 18:53:43 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Wed, 7 Jun 2006 18:53:43 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 X-Priority: 3 X-RFC2646: Format=Flowed; Response X-Newsreader: Microsoft Outlook Express 6.00.2900.2869 X-User: karpierz X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit