Refatorando para uma Fluent Interface

Estou me baseando nesse exemplo

Codigo Atual

[code] _presenter = new xxxPresenter();

_presenter.View = this; // é C# :wink:

if (!IsPostBack)
{
_presenter.OnViewInitialized();
}

_presenter.OnViewLoaded(); [/code]

Proposta Via Fluent Interface (recusada, é claro, pois a resposta do arquiteto é “GAT/GAX” … enfim… )

_fluentpresenter = new XxxPresenterFluent() .setView(this) .OnViewInitialized(IsPostBack) /* usa if interno , talvez desnecessário ... */ .OnViewLoaded();

Pergunta: Estou dourando a pilula ou estou no caminho certo?

Como isso poderia caracterizar uma DSL ?

Olá, ainda não estudei sobre o assunto. Mas o guilherme tem um post legal sobre:

http://gc.blog.br/2007/09/25/refatorando-para-fluent-interface/

http://gc.blog.br/?s=fluent+interface

Aii show de bola!!! Que exemplo legal de fluent interface!!! (Agora até eu vou tentar aprender e usar fluent interface!)

Sem falar sobre os posts do QCon! Vou passar um tempo nesse blog!

Ae Guilherme show de contribuição! Show de blog! Parabéns!

É uma Fluent Interface porque você alterou o estilo da linguagem para ter algo mais leg[ovel, mais fluente mesmo.

Não é uma DSL porque a linguagem que você está usando ainda é Java, você ainda resolve problemas da mesma maneira que Java faz.

[quote=peczenyj]Estou me baseando nesse exemplo

_fluentpresenter = new XxxPresenterFluent() .setView(this) .OnViewInitialized(IsPostBack) /* usa if interno , talvez desnecessário ... */ .OnViewLoaded();
[/quote]

Eu acho que withView(this) “flui” melhor que setView(this). De resto parece legal.

[quote=pcalcado]É uma Fluent Interface porque você alterou o estilo da linguagem para ter algo mais leg[ovel, mais fluente mesmo.

Não é uma DSL porque a linguagem que você está usando ainda é Java, você ainda resolve problemas da mesma maneira que Java faz.[/quote]

Shoes,

Apesar do tópico ser antigo, não entendi sua colocação sobre Fluent Interfaces não ser uma DSL. No meu entendimento, seria uma forma de implementar uma DSL Interna, ou estou errado?
O que caracteriza uma DSL? Da forma como vc colocou somente seria uma DSL se eu estivesse criando uma nova linguagem com um novo parser?

Value
Luiz Costa