Estou me baseando nesse exemplo
In software engineering, a fluent interface (as first coined by Eric Evans and Martin Fowler) is a method for designing object oriented APIs based extensively on method chaining with the goal of making the readability of the source code close to that of ordinary written prose, essentially creating a domain-specific language within the interface. An example of a fluent test expectation in the JMock testing framework is:
A fluent interface is normally implemented by using method chaining to implem...
Codigo Atual
[code] _presenter = new xxxPresenter();
_presenter.View = this; // é C#
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 ?
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