bom, o Facade não pertence a alguma parte específica do MVC e acredito
que ele seja um complemento a ele.
Segundo o livro de design patterns da Gang of Four, o conceito do
Facade é:
"O padrão de projeto Facade fornece uma interface única para um
conjunto de interfaces de um subsistema. Uma Facade define uma
interface de mais alto nível que torne o subsistema mais fácil de ser
utilizado."
A forma como eu utilizo o Facade é para complementar o Controller,
escondendo dele as partes de chamar models e etc, fazendo com que ele
controle o fluxo entre a view e a Facade, deixando o cargo de acessar
o Model à camada Facade. Para se ter um exemplo, ao se recuperar dados
de models utilizando o Doctrine, o Controller deveria conter o
seguinte código:
$tarefa_table = Doctrine::getTable('Tarefas');
$tarefas = $tarefa_table->allData();
No meu caso, eu utilizo o Facade para esconder esse tipo de coisa e
também qualquer outra lógica que seja necessária ao fazer acessos ou
passar dados ao Model, fazendo com que o Controller seja única e
exclusivamente responsável por controle de fluxo (essa na verdade
deveria ser sua função). Assim o código da controller fica mais limpo,
organizado e faz jus ao seu nome CONTROLAR o fluxo. Mas eu também
posso estar enganado, me corrijam qualquer coisa galera! :)