O documento descreve o que é uma interface fluente, como funciona e seus benefícios. Uma interface fluente é um padrão de programação que permite encadear chamadas de métodos de forma fluida através da transferência de contexto, tornando o código mais legível. Isso melhor a manutenibilidade e a compreensão do fluxo de execução. Exemplos demonstram como aplicar esse padrão para diferentes casos.
2. ÍNDICE
OIntrodução.
OInterface Fluente.
OO que é isso?
OPra que serve?
OComo eu uso isso?
OProgramar Para um Ser Humano Entender.
OPor que fazer isso?
OVantagens da Interface Fluente.
ODesvantagens da Interface Fluente.
4. INTRODUÇÃO
OOs primeiro programas de computador eram instruções sequenciais difíceis de serem compreendidas e que executavam tarefas relativamente muito pequenas.
OCom a evolução do hardware o software também teve que evoluir e crescer.
5. INTRODUÇÃO
OOs programas então cresceram em numero de instruções, complexidade, e melhorou ligeiramente a facilidade de compreensão dos códigos escritos em uma linguagem mais próxima a natural.
OMas não parou por ai, novos paradigmas de programação foram surgindo, e quando uma “nova solução” aparece ela não esta só, ela tem um irmão siamês; “o problema novo”.
6. INTRODUÇÃO
OE dos novos problemas que foram surgindo, é claro, novas ideias foram aparecendo. Então começam a surgir tipos de problemas muito recorrentes.
OPara problemas recorrentes temos soluções recorrentes. Os padrões de projeto. Aqui iremos abordar uma dessas soluções para problemas frequentes no desenvolvimento de software, a Interface Fluente.
7. INTERFACE FLUENTE
OO que é?
OInterface Fluente é um padrão de desenvolvimento de software orientado a objetos, que faz parte da categoria de DSL’s internas.
OUma DSL, em resumo, é uma linguagem de domínio especifico, criada para um proposito particular. Exemplos de DSL; HTML, expressões regulares, macros de planilhas eletrônicas, etc.
8. INTERFACE FLUENTE
OPra que serve?
OMelhora a legibilidade dos códigos, tornando o fluxo de execução mais simples e intuitivo.
OTorna o código menos extenso.
OFornece maior flexibilidade ao código.
9. INTERFACE FLUENTE
OComo eu uso isso?
OEsse modelo de desenvolvimento baseia-se no encadeamento dos métodos (Method Chaining).
OEsse encadeamento é possível através da transferência de contexto da instrução.
OFazemos essa transferência de contexto retornando uma referencia ao objeto que realizou a primeira instrução.
10. INTERFACE FLUENTE
OComo eu uso isso?
OPra isso eu crio uma interface onde nessa interface todos os métodos retornam seu próprio tipo.
11. INTERFACE FLUENTE
OComo eu uso isso?
OPara utilizar você fará chamadas como as mostrada na imagem abaixo. Obs: Desconsiderar números e strings mágicas.
12. PROGRAMAR PARA UM SER HUMANO ENTENDER
OPor que fazer isso?
OPrimeiro porque pode melhorar a legibilidade de seu código de uma forma simplesmente assustadora.
ONão acredita veja os próximos exemplos;
15. PROGRAMAR PARA UM SER HUMANO ENTENDER
OVantagens da Interface Fluente.
OReveja os dois slides anteriores. O primeiro código é mais feio que parto de ouriço.
OJá o segundo código...
OCom interfaces Fluentes seu programa se torna mais legível.
OO fluxo de chamadas de métodos parece mais natural.
16. PROGRAMAR PARA UM SER HUMANO ENTENDER
OVantagens da Interface Fluente.
OSua lógica de negócios agora esta mais visível no código para análise.
OTDD agora passa a ser algo mais intuitivo.
OSeu código se tornará mais flexível, aberto para evolução e fechado para mudança.
17. PROGRAMAR PARA UM SER HUMANO ENTENDER
ODesvantagens da Interface Fluente.
ORealizar debug pode ser uma tarefa complicada. O encadeamento de métodos em uma única instrução dispara uma serie de operações. Dificultando a inserção de breakpoints em uma chamada especifica.
18. PROGRAMAR PARA UM SER HUMANO ENTENDER
ODesvantagens da Interface Fluente.
OO tratamento de exceções também pode ser difícil caso o tipo não esteja bem estruturado.
OAbusar do encadeamento pode deixar o código estranho e acabará por complicar a leitura ao invés de ajudar. Use com parcimônia.
19. PROGRAMAR PARA UM SER HUMANO ENTENDER
ODesvantagens da Interface Fluente.
OCriar as interfaces de forma consistente é difícil, não é um trabalho rápido.
OOs métodos soltos nas classes as vezes não são tão intuitivos, pode ser difícil para entender a responsabilidade de cada método de forma isolada apenas pelo seu nome.