<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Um exemplo prático de Fluent Interface</title>
	<atom:link href="http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/feed/" rel="self" type="application/rss+xml" />
	<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/</link>
	<description>Blog sobre desenvolvimento de software e tecnologia</description>
	<lastBuildDate>Wed, 10 Mar 2010 19:00:21 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Camilo lopes</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-15207</link>
		<dc:creator>Camilo lopes</dc:creator>
		<pubDate>Fri, 11 Dec 2009 14:10:41 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-15207</guid>
		<description>ola! Guilherme, realmente muito show. A respeito da sugestao EmailBuilder bcc(String… address); se implementar no projeto, deve lembrar quem baixar o novo code, deve ter o java 5, ja que var-args nasceu na versao 1.5. 

abraco</description>
		<content:encoded><![CDATA[<p>ola! Guilherme, realmente muito show. A respeito da sugestao EmailBuilder bcc(String… address); se implementar no projeto, deve lembrar quem baixar o novo code, deve ter o java 5, ja que var-args nasceu na versao 1.5. </p>
<p>abraco</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Algumas Idéias &#187; Blog Archive &#187; Fluent Argument Validation</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-1169</link>
		<dc:creator>Algumas Idéias &#187; Blog Archive &#187; Fluent Argument Validation</dc:creator>
		<pubDate>Sun, 31 Aug 2008 17:22:06 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-1169</guid>
		<description>[...] por falar em fluent interfaces, o Guilherme Chapiewski fez dois ótimos posts a alguns [...]</description>
		<content:encoded><![CDATA[<p>[...] por falar em fluent interfaces, o Guilherme Chapiewski fez dois ótimos posts a alguns [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Guilherme Chapiewski</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-466</link>
		<dc:creator>Guilherme Chapiewski</dc:creator>
		<pubDate>Fri, 07 Mar 2008 17:52:41 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-466</guid>
		<description>@lavh

Boa idéia! Vou incluir sua alteração no projeto :) Obrigado! Se vc tiver mais ideias legais, entre em contato comigo. Posso te cadastrar lá como commiter pra você me ajudar, se vc tiver interesse.

[ ]s, gc</description>
		<content:encoded><![CDATA[<p>@lavh</p>
<p>Boa idéia! Vou incluir sua alteração no projeto <img src='http://gc.blog.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Obrigado! Se vc tiver mais ideias legais, entre em contato comigo. Posso te cadastrar lá como commiter pra você me ajudar, se vc tiver interesse.</p>
<p>[ ]s, gc</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leandro Silva</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-465</link>
		<dc:creator>Leandro Silva</dc:creator>
		<pubDate>Fri, 07 Mar 2008 17:15:53 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-465</guid>
		<description>Cara, super iniciativa. Parabéns!</description>
		<content:encoded><![CDATA[<p>Cara, super iniciativa. Parabéns!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lavh</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-464</link>
		<dc:creator>lavh</dc:creator>
		<pubDate>Fri, 07 Mar 2008 16:17:31 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-464</guid>
		<description>Em primeiro lugar PARABÉNS! Ficou muito bom o seu exemplo...

Eu baixei o código para analisar e fiz uma alteração que acho que ficou mais legal. Eu mudei o parâmetro de dois métodos para usar varargs

EmailBuilder cc(String... address);

EmailBuilder bcc(String... address);

Assim acho que fica mais legal. Porque vamos supor que a lista de e-mails de cc vem de um repository...então não tem como vc ficar fazendo:

cc(email1).cc(email2).cc(email3). Então usando varargs resolve este problema, você passa a lista direto.

[]&#039;s</description>
		<content:encoded><![CDATA[<p>Em primeiro lugar PARABÉNS! Ficou muito bom o seu exemplo&#8230;</p>
<p>Eu baixei o código para analisar e fiz uma alteração que acho que ficou mais legal. Eu mudei o parâmetro de dois métodos para usar varargs</p>
<p>EmailBuilder cc(String&#8230; address);</p>
<p>EmailBuilder bcc(String&#8230; address);</p>
<p>Assim acho que fica mais legal. Porque vamos supor que a lista de e-mails de cc vem de um repository&#8230;então não tem como vc ficar fazendo:</p>
<p>cc(email1).cc(email2).cc(email3). Então usando varargs resolve este problema, você passa a lista direto.</p>
<p>[]&#8217;s</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luiz Gustavo Roos</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-463</link>
		<dc:creator>Luiz Gustavo Roos</dc:creator>
		<pubDate>Fri, 07 Mar 2008 12:22:50 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-463</guid>
		<description>A configuração do Module do Guice é assim, eu achei demais, mas não sabia que tinha nome (Fluent Interface), vou pesquisar mais sobre isso, fica até legal de desenvolver assim hehe.
Parabéns pelo post</description>
		<content:encoded><![CDATA[<p>A configuração do Module do Guice é assim, eu achei demais, mas não sabia que tinha nome (Fluent Interface), vou pesquisar mais sobre isso, fica até legal de desenvolver assim hehe.<br />
Parabéns pelo post</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: daniel gatis</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-462</link>
		<dc:creator>daniel gatis</dc:creator>
		<pubDate>Thu, 06 Mar 2008 23:55:02 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-462</guid>
		<description>@Guilherme Chapiewski

me convenceu! ;)
[]s</description>
		<content:encoded><![CDATA[<p>@Guilherme Chapiewski</p>
<p>me convenceu! <img src='http://gc.blog.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
[]s</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leonardo Fernandes</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-461</link>
		<dc:creator>Leonardo Fernandes</dc:creator>
		<pubDate>Thu, 06 Mar 2008 14:14:49 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-461</guid>
		<description>Putz...daqui a pouco até minha mãe vai desenvolver software. :)
Muito bom isso...
Guilherme...Algum livro sobre isso?? O novo livro do Martin Fowler abordará alguma coisa sobre?</description>
		<content:encoded><![CDATA[<p>Putz&#8230;daqui a pouco até minha mãe vai desenvolver software. <img src='http://gc.blog.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Muito bom isso&#8230;<br />
Guilherme&#8230;Algum livro sobre isso?? O novo livro do Martin Fowler abordará alguma coisa sobre?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anderson Ribeiro</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-460</link>
		<dc:creator>Anderson Ribeiro</dc:creator>
		<pubDate>Thu, 06 Mar 2008 03:28:45 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-460</guid>
		<description>Guilherme, tive a liberdade de reproduzir seu post, devidamente creditado , no meu blog.

Parabéns pela iniciativa.</description>
		<content:encoded><![CDATA[<p>Guilherme, tive a liberdade de reproduzir seu post, devidamente creditado , no meu blog.</p>
<p>Parabéns pela iniciativa.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Laércio Queiroz</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-459</link>
		<dc:creator>Laércio Queiroz</dc:creator>
		<pubDate>Wed, 05 Mar 2008 12:13:27 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-459</guid>
		<description>De fato, &quot;brincar&quot; com as DSLs é a melhor forma de assimilar e difundir o conceito. Parabéns, a idéia da API de e-mails é bem legal! Semana passada escrevi uma wrapper aqui no trabalho para facilitar operações de autenticação/autorização num servidor LDAP. ;)

[]s</description>
		<content:encoded><![CDATA[<p>De fato, &#8220;brincar&#8221; com as DSLs é a melhor forma de assimilar e difundir o conceito. Parabéns, a idéia da API de e-mails é bem legal! Semana passada escrevi uma wrapper aqui no trabalho para facilitar operações de autenticação/autorização num servidor LDAP. <img src='http://gc.blog.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>[]s</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Guilherme Chapiewski</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-458</link>
		<dc:creator>Guilherme Chapiewski</dc:creator>
		<pubDate>Tue, 04 Mar 2008 02:18:18 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-458</guid>
		<description>@Daniel

Cara, tecnicamente até é possível fazer do jeito que você fez, mas eu vejo alguns problemas. Na opção (1), por exemplo, a interface fica menos fluente. Experimente ler as duas em inglês e vai perceber que &quot;new e-mail message from fulano...&quot; é mais natural que &quot;e-mail message new to fulano...&quot;, sem contar que o new precisaria ser estático. Já na opção (2), o problema é que vocë precisaria de métodos estáticos e você teria mais trabalho para gerenciar o estado do objeto.

@Rafael

Infelizmente os eventos não são abertos (ainda) :)</description>
		<content:encoded><![CDATA[<p>@Daniel</p>
<p>Cara, tecnicamente até é possível fazer do jeito que você fez, mas eu vejo alguns problemas. Na opção (1), por exemplo, a interface fica menos fluente. Experimente ler as duas em inglês e vai perceber que &#8220;new e-mail message from fulano&#8230;&#8221; é mais natural que &#8220;e-mail message new to fulano&#8230;&#8221;, sem contar que o new precisaria ser estático. Já na opção (2), o problema é que vocë precisaria de métodos estáticos e você teria mais trabalho para gerenciar o estado do objeto.</p>
<p>@Rafael</p>
<p>Infelizmente os eventos não são abertos (ainda) <img src='http://gc.blog.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rafael Dx7</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-457</link>
		<dc:creator>Rafael Dx7</dc:creator>
		<pubDate>Tue, 04 Mar 2008 00:12:26 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-457</guid>
		<description>eu ouvi falar em evento? aberto ao público? hum... interessante.</description>
		<content:encoded><![CDATA[<p>eu ouvi falar em evento? aberto ao público? hum&#8230; interessante.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Diego Carrion</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-456</link>
		<dc:creator>Diego Carrion</dc:creator>
		<pubDate>Mon, 03 Mar 2008 23:20:31 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-456</guid>
		<description>Muito legal Guillherme, deu para entender a idéia muito fácil!</description>
		<content:encoded><![CDATA[<p>Muito legal Guillherme, deu para entender a idéia muito fácil!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: daniel gatis</title>
		<link>http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/comment-page-1/#comment-455</link>
		<dc:creator>daniel gatis</dc:creator>
		<pubDate>Mon, 03 Mar 2008 23:15:30 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/2008/03/03/um-exemplo-pratico-de-fluent-interface/#comment-455</guid>
		<description>Bem legal!
Será que o construtor não poderia ficar inline tambem?! Algo como:

EmailMessage.new()
    .from(&quot;demo@guilhermechapiewski.com&quot;)
    .to(&quot;destination@address.com&quot;)
    .withSubject(&quot;Fluent Mail API&quot;)
    .withBody(&quot;Demo message&quot;)
    .send();

ou até mesmo

EmailMessage.
    .from(&quot;demo@guilhermechapiewski.com&quot;)
    .to(&quot;destination@address.com&quot;)
    .withSubject(&quot;Fluent Mail API&quot;)
    .withBody(&quot;Demo message&quot;)
    .send();

[]&#039;s</description>
		<content:encoded><![CDATA[<p>Bem legal!<br />
Será que o construtor não poderia ficar inline tambem?! Algo como:</p>
<p>EmailMessage.new()<br />
    .from(&#8221;demo@guilhermechapiewski.com&#8221;)<br />
    .to(&#8221;destination@address.com&#8221;)<br />
    .withSubject(&#8221;Fluent Mail API&#8221;)<br />
    .withBody(&#8221;Demo message&#8221;)<br />
    .send();</p>
<p>ou até mesmo</p>
<p>EmailMessage.<br />
    .from(&#8221;demo@guilhermechapiewski.com&#8221;)<br />
    .to(&#8221;destination@address.com&#8221;)<br />
    .withSubject(&#8221;Fluent Mail API&#8221;)<br />
    .withBody(&#8221;Demo message&#8221;)<br />
    .send();</p>
<p>[]&#8217;s</p>
]]></content:encoded>
	</item>
</channel>
</rss>
