Controladores, uma boa solução… o “C” do MVC


É certo que vivemos um momento de “boom” tecnológico, não é diferente com as linguagens de programação, cada anos nos deparamos com novos projetos de linguagens de programação. A coqueluxe do momento é o Python, que tem lá as suas vantagens que o tornaram essa “coqueluxe”, porém nada como o tempo para solidifcar ou desmitificar uma linguagem de programação.

Agora algo que se atualiza mas devagar é o modo de como aplicar/modelar e usar as linguagens, pode ser que teoricamente existão mais de 3, mas na prática só tem 3 maneiras que conhecemos a Estruturaçáo de dados (que arrastamos ainda por não termos banco de dados OO 100% OO e confiáveis no mercado, tá admito a existência dos DAOs, mas estão engatinhando ainda), a Orientação em Objetos, que não é nenhuma novidade, porém muito poderosa e com certeza veio para ficar! E a mais utilizada no mercado pela a grande maioria, maioria essa denominadas de non-professional, que é o POG, que todos sabem é a Programação Orientada a Gambiarras. Já vi muitos ótimos programadores que sabem como programar em OO, mas era maior POG, pessoas que se acham o supra sumo da programação, porém não seguem nenhum padrão nem modelo de UML, programam de uma maneira que só elas entedem e por ae vai…

Mas vamos falar de padrões, famoso termo Design Patterns, já me questionaram se o MVC seria um “Design Pattern”, disse que ideologicamente sim, mas economicamente não, pq esse termo surgiu com o “GOF” (Group of Four) que foram 4 analistas que criaram alguns padrões de projetos e os chamaram de “Padrões de Projetos”… dãaaaa… Mas que o MVC é um padrão de projeto e muito interessante.

Agora chega de blablabla e vamos aos controladores… Imaginem a cena…

Você chega no bar, se dirige ao balcão, todo arrumado limpo, agradável aos seus olhos e com convidativo, vc se dirige ao atendente e pede uma bebida exótica, essa atendente se dirige ao barman e faz seu pedido, vc espera e o atendente lhe entrega a bebida”

A “cena” supracitada (me senti um advogado agora), ilustra bem o que é um Controlador, nesse caso o atentende seria o controlador, fácil não ? Agora vamos para a nossa realidade (se é que a realidade de um programador/analista seria de fato algo real, já que “abstraimos” constatemente)… A interface gráfica de nossas aplicações “podem ser obrigatoriamente” (copiei essa frase do Guia do Mochileiro das Galáxias, hehehe), burras, extremamentes burras, “indolentemente desprovidadas de qualquer inteligência”, ou seja, não devem ser nada além de “interfaces gráficas”, no caso acima citado o atendente não precisa saber preparar a bebida, ele só precisa saber falar corretamente, no caso da programação, a GUI (interface gráfica, nao vou ficar repetindo interface gráfica vou falar só GUI agora, por sinal Graphic Interface Users), não precisa entender seu pedido só precisa enviar para quem entenda, uma Classe seria um bom exemplo, classe essa que teria que saber tudo o que a interface gráfica quer e retornar o processamento do pedido

Exemplo… Temos uma página de web com o menu, cada menu corresponde a uma tela … vamos criar entao…


<ul id="menu">
  <li><a href="?tela=tela1">tela 1</a>
  </li><li><a href="?tela=tela1">tela 2</a>
</li></ul>

<div id="lugar_onde_as_telas_vao_aparecer_mas_nao_usem_esse_nome_grande">
< ?
require_once('controladordetelas.php');

?>
</div>

Notem esse exemplo de cima to fazendo um controlador sem ser em classe simples mesmo para entedimento… e no controladordetelas.php o que fariamos


switch($_GET['tela']){
     case 'tela1':{require_once('views/tela1.php');break;}
     case 'tela2':{require_once('views/tela2.php');break;}
     default:require_once('view/telaboasvindas.php');

}

Fácil não !? Agora, vc não modela controladores em diagramas de classes, eles sempre aparecem (sempre se a pessoa modelar bem), em Diagramas de Sequência, sempre respondendo uma chamada da GUI, vc pode cria-los e usa-los em várias coisas, mas em geral (110%) dos casos são para GUIs.

Como falei no início, as linguagens vem e vão, algumas permanecem, o C++ está até hoje, e ainda promete, o JAVA (o qual eu não abro mão), se consolidou, o PHP está forte e grande no mercado, o Python chegou prometendo e até agora esta cumprindo(só faltou o switchs nele) e demais linguagens. Todas elas sofrem com o tempo, mas a velha e boa modelagem permanece!

Um comentário sobre “Controladores, uma boa solução… o “C” do MVC

Deixe um comentário