Humberto Cardoso Marchezi – Data 25/05/2005
TÓPICOS ESPECIAIS EM PROGRAMAÇÃO
Introdução
O objetivo desse artigo é explicar os dois padrões de projeto mais utilizados para arquitetura de sistemas, que são o MVC e o Doc-View, e comparar as vantagens e desvantagens no uso de cada um deles.O Framework Doc-View
O Doc-View (Document/View) é um padrão de projeto foi criado pela Microsoft ao liberar a MFC junto com o seu ambiente de desenvolvimento para C++, o Visual Studio. A motivação para a criação desse padrão de projeto mais conhecido como framework foi a de separar os dados da aplicação da apresentação desses dados.
Um documento (Document) é um objeto que age como um container dos dados da aplicação enquanto que a visão (View) é um objeto de interface gráfica associado a uma área cliente de uma janela podendo ser a própria janela e que é responsável pela interação do usuário com os dados por meio de cliques do mouse e do teclado.Além disso, um documento contém também as funcionalidades principais da aplicação encapsuladas através dos métodos executados através das mensagens vindas das visões ou da interface gráfica.
Por fim, as informações de um documento podem ser representadas por várias visões, por exemplo, os dados de velocidade de um veículo no tempo no formato tabular ou gráfico, aumentando, dessa forma, a modularidade do programa.
O Framework MVC
O padrão MVC (Model View Controller) surge como uma outra maneira de quebrar a aplicação só que desta vez em três partes: controlador, modelo e visão respectivamente representando a entrada de dados, o processamento e a saída no domínio da interface gráfica.
Não existe uma maneira única de implementar o padrão MVC sendo essa acima uma proposta da SUN para os desenvolvedores JAVA. Existem outras propostas que inclusive derivadas ou que estendem o conceito
como o Model-Pipe-View-Controller, Model-View-Presenter, Hierarchical-Model-View-Controller, Four-Layer-Architecture, etc.
De qualquer maneira, pode-se perceber que a classe Modelo fica isolada das outras duas classes o que produz algumas vantagens que serão vistas a seguir.
Framework Doc-View versus Framework MVC
Ao desenvolver uma aplicação para dar suporte ao um tipo de aplicação cliente, misturar regras de negócio e acesso a dados com lógica específica de interface gráfica para apresentação e controle não é uma abordagem adequada. Como diferentes aplicações precisam ser desenvolvidas para cada tipo de cliente, um código que não pertence a interface é replicado em cada aplicação o que resulta em esforço extra para na implementação, no teste e na manutenção.Ao utilizar o um dos frameworks acima tal dificuldade não existe pois as regras de negócio são isoladas no Documento no caso do Doc-View, ou no Modelo no caso do MVC sendo essa a vantagem principal ao se
utilizar qualquer um desses frameworks. Permite a reutilização do código que diz respeito a regra de negócio.
utilizar qualquer um desses frameworks. Permite a reutilização do código que diz respeito a regra de negócio.
As diferenças maiores entre os dois padrões esta no controle da interface gráfica. Enquanto que o Doc-View concentra todo o controle da interface gráfica na classe Visão, o MVC quebra este controle entre nas classes de Visão e Controle. Ao fazê-lo dessa forma, o MVC pressupõe que os métodos de controle de interface gráfica sejam mais bem distribuídos entre a Visão e o Controlador a medida que a aplicação a ser desenvolvida vai crescendo.
Entretanto o que na prática tem se observado é que a classe Controlador no padrão MVC cresce na mesma proporção que a classe Visão no padrão Doc-View a medida que aumenta a complexidade no controle da interface gráfica e na interação com o usuário.
Entretanto o que na prática tem se observado é que a classe Controlador no padrão MVC cresce na mesma proporção que a classe Visão no padrão Doc-View a medida que aumenta a complexidade no controle da interface gráfica e na interação com o usuário.
Um outro benefício que pode ser obtido pelo MVC em relação ao Doc-View é a independência da Visão em relação ao Modelo (ou Documento) o que permite a reusabilidade da Visão em outras aplicações.
Além disso, ao utilizar um Controlador, o padrão MVC permite que um mesmo Modelo possa ser representado por várias dessas Visões independentes o que pode ser muito útil para aplicações gráficas de CAD, por exemplo, onde um mesmo objeto é mostrado em várias perspectivas diferentes.
Por sua vez, o framework Doc-View tem como vantagem o fato de poder ser implementado de forma mais simples que o MVC. Além do mais, na maioria das aplicações como os sistemas de informação, por exemplo, não existe a necessidade de representar os dados em várias visões o que faz o Doc-View ser igualmente útil e até mais bem aproveitado nesses tipos de sistemas.
Conclusões
A partir das comparações feitas pode-se concluir é mais interessante analisar como a aplicação a ser desenvolvida vai funcionar antes de escolher um dos dois padrões apresentados.Se a reusabilidade das Visões ou o uso de múltiplas Visões para um mesmo modelo de dados for uma questão importante no projeto de arquitetura de um sistema, vale a pena utilizar o padrão MVC.
Por outro lado, em outros tipos de sistemas, o Doc-View é uma alternativa igualmente útil com a vantagem de ser mais simples e portanto mais produtiva.
De qualquer forma, seja qual for a alternativa escolhida ambos os padrões permitem uma melhor gerenciamento, clareza e reutilização do código por isolar a camada que gerencia a regra de negócios.
Referências:
http://www.mindcracker.com/mindcracker/c_cafe/docview/dw0.asp
http://java.sun.com/blueprints/patterns/MVC-detailed.html
http://c2.com/cgi/wiki?ModelPipeViewController
http://c2.com/cgi/wiki?ModelViewPresenter
ftp://www6.software.ibm.com/software/developer/library/mvp.pdf
http://c2.com/cgi/wiki?FourLayerArchitecture
http://c2.com/cgi/wiki?HierarchicalModelViewController
No comments:
Post a Comment