Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Facade

Em relação ao Facade, vejo muita gente desestimulando o uso desse padrão. Mas quando penso em desenvolvimento de qualquer aplicação , sempre vejo que tudo é uma fachada que esconde um monte de complexidade para dentro da aplicação. Até ai me parece que todo software é um conjunto de Facades.

Agora olhando no detalhe do código ou de alguma implementação prática do pattern novamente vejo o Facade como uma forma de ocultar as complexidades da implementação e permite que um desenvolvedor menos experiente utilize algum método estático e que acredite que o que está sendo feito por trás está fazendo certo.

As minha questões são: essas não são as propostas de qualquer Framework ou lib? Até mesmo o Doctrine não faz isso?

Você citou o Laravel no curso. Particularmente não uso, mas escuto falar da galera, que a proposta dele é facilitar e acelerar o desenvolvimento e talvez seja ocultando as complexidades. Mas de novo, em diferentes medidas, não é isso que tudo framework tenta fazer no final das contas?

Não será uma questão de nomenclatura? Alguns dão o nome de Facade (FazAlgumaCoisaFacade.php) e outros não?

Concordo com você que o fato de instanciar outras classes dentro pode ser um erro, mas como sempre, essa é uma decisão do desenvolvedor. E se fosse uma dependencia injetada, não seria mais um Facade?

Depois dessas refelexões acima, me inclino a pensar que dizer que Facede é um padrão, resulta meio redundante, pois tudo termina mais ou menos na mesma intenção: implementar uma fachada para um sistema complexo por trás.

A questão das boas ou más implementações, acredito que se resolva com princípios SOLID e outras boas práticas de desenvolvimento. Não acha?

1 resposta
solução!

Então, Carlos, o padrão Facade visa entregar acesso simplificado a um sub-sistema. "Esconder a complexidade" como você tá comentando é só o princípio de encapsulamento mesmo. Facade permite você fazer algo de forma mais simples, mas que seria possível realizar sem ela, através da chamada de vários outros métodos, por exemplo. :-)