🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #14732

Re: "setter" zwracający obiekt

#14732
From: a1
Date: Wed, 07 Jun 2006 13:45
55 lines
2767 bytes
Adam Karpierz wrote:
> "a1" <a1@no.spam> wrote in message news:e66dmr$q62$1@inews.gazeta.pl...
> 
> 
>>Tragedia bo...? osobiscie nie widze zadnych przeciwskazan,
> 
> 
> 1. Wieksza bledogennosc - i to bledogennosc trudna niekiedy
>      do wykrycia.
Błedogennosc? Bo musze mniej kodu napisac?

> 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.

> 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.

> 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);

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.

-- 
a1 (Bartek Janusz) arcone1 gmail com
Technical Details
Message-ID: <e66l9m$2j1$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
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>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: a1 <a1@no.spam>
Newsgroups: pl.comp.objects
Subject: Re: "setter" zwracający obiekt
Date: Wed, 07 Jun 2006 15:45:25 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 55
Message-ID: <e66l9m$2j1$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>
Reply-To: a1@no.spam
NNTP-Posting-Host: nat-plk.mentorg.com
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1149687926 2657 139.181.144.34 (7 Jun 2006 13:45:26 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Wed, 7 Jun 2006 13:45:26 +0000 (UTC)
X-Accept-Language: en-us, en
X-User: arcone1
User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)
In-Reply-To: <e66joh$p6i$1@inews.gazeta.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit