Fluent Interfaces (Eric Evans e Martin Fowler) é uma maneira de implementar um objeto orientado, API (Application programming interface), de uma forma que visa proporcionar um código mais legível.
É normalmente implementado usando o método de encadeamento para retransmitir o contexto para uma próxima chamada. Geralmente, o contexto é definido através do valor de retorno de um método chamado auto-referenciado, onde o novo contexto é equivalente ao contexto passado.
Isto faz com que seu código fique mais transparente e a leitura passa a ser mais fácil e conseqüentemente o desenvolvimento.

Bom vamos direto ao assunto, veja o exemplo abaixo:

[csharp] #region Fluent Example

public interface IConfigurationFluent
{
IConfigurationFluent SetColor(string color);
IConfigurationFluent SetHeight(int height);
IConfigurationFluent SetLength(int length);
IConfigurationFluent SetDepth(int depth);
}

public class ConfigurationFluent : IConfigurationFluent
{
string color;
int height;
int length;
int depth;

public IConfigurationFluent SetColor(string color)
{
this.color = color;
return this;
}

public IConfigurationFluent SetHeight(int height)
{
this.height = height;
return this;
}

public IConfigurationFluent SetLength(int length)
{
this.length = length;
return this;
}

public IConfigurationFluent SetDepth(int depth)
{
this.depth = depth;
return this;
}
#endregion

public class ExampleProgram
{
public static void Main(string[] args)
{
//Standard Example
IConfiguration config = new Configuration
{
Color = "blue",
Height = 1,
Length = 2,
Depth = 3
};

//Fluent Example
IConfigurationFluent fluentConfig =
new ConfigurationFluent().SetColor("blue")
.SetHeight()
.SetLength(2)
.SetDepth(3);
}
}
[/csharp]

Referência:

http://en.wikipedia.org/wiki/Fluent_interface

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Preencha esse campo
Preencha esse campo
Digite um endereço de e-mail válido.
Você precisa concordar com os termos para prosseguir

Menu