Fluent Interface é uma "técnica" para tornar o código mais legivel e fluente. A ideia é implementar uma interface aonde que no momento de instanciação o próprio construtor consiga transmitir o significado, ou seja, que se faça mesmo uma leitura do construtor. Aconselho a vocês darem uma olhada nesse exemplo.

Um exemplo de fluent interface em java:

Resposta:

Java(TM) 2 Platform Standard Edition 5.0:

new EmailMessage()
    .de("meu@email.com" )
    .para("email@dele.com" )
    .Assunto("Fluent Interface" )
    .CorpoDaMensagem("Olá, já leu sobre fluent interface?" )
    .enviar();

O PHP 5 também suporta o uso de fluent interface, um exemplo de como ficaria:

PHP:

<?php
private function facaNormal(Cliente $cliente) {
    $p1 = new Pedido();
    $cliente->fazerPedido($p1) ;
    $line1 = new LinhaPedido(6, Produto::find('TAL')) ;
    $p1->adicionarLinha($line1);
    $line2 = new LinhaPedido(5, Produto::find('HPK')) ;
    $p1->adicionarLinha($line2);
    $line3 = new LinhaPedido(3, Produto::find('LGV')) ;
    $p1->adicionarLinha($line3);
}
private function facaFluent(Cliente $cliente) {
    $cliente->novoPedido()
             ->with( 6, 'TAL' )
             ->with( 5, 'HPK' )
             ->with( 3, 'LGV' )
}            
?>

Saiba mais sobre Fluent Interface em:

Wikipedia
Artigo do Martin Fowler
Fluent Interface em PHP

Endereço de trackback para este post

Trackback URL (clique direito e copie atalho/localização do link)

Feedbacks esperando moderação

Esse post tem 60 feedbacks esperando moderação...

Deixe seu comentário


Seu endereço de e-mail não será revelado nesse site.

Sua URL será exibida.
(Quebras de linha se tornam <br />)
(Nome, e-mail & website)
(Permitir que usuários o contatem através de um formulário eletrônico (seu e-mail não será exibido.))