Você está na página 1de 6

💠

Capítulo 3 - INSPIRING: ORM &


JAVA 2.0
Design Patterns
Um design pattern é uma solução estabelecida para problemas comuns que ocorrem
frequentemente no desenvolvimento de software. Eles são soluções genéricas e
podem ser aplicados a vários contextos diferentes. O uso de design patterns ajuda a
organizar o código, torná-lo mais fácil de manter e reutilizar e resolver problemas de
projeto de maneira eficiente.

Christopher Alexander, em seus livros "Notes on the Synthesis of Form" e "The


Timeless Way of Building" e em "A Pattern Language", destacou que um design pattern
deve ter as seguintes características para ser considerado um padrão:

Encapsulamento: um padrão encapsula um problema ou uma solução bem


definida.

Generalidade: todo padrão deve permitir a construção de outras realizações a


partir dessepadrão.

Equilíbrio: quando um padrão é utilizado em uma aplicação, o equilíbrio dá a


razão, relacionada com cada uma das restrições envolvidas, para cada passo
do projeto.

Abstração: os padrões representam abstrações da experiência empírica ou do


conhecimento cotidiano.

Abertura: um padrão deve permitir a sua extensão para níveis mais baixos de
detalhe.

Combinatoriedade: os padrões são relacionados hierarquicamente


reexplique de forma simples de entender

Capítulo 3 - INSPIRING: ORM & JAVA 2.0 1


O livro Design Patterns: Elements of Reusable Object-Oriented Software descreve 23
padrões de design, obtidos dessas experiências documentadas que comentamos, e os
organiza em três tipos de padrões:

1. De criação: relativosà criação de objetos.

2. Estruturais: tratam das associações entre classes e objetos.

3. Comportamentais: referentes àsinterações (algoritmos) e divisões de


responsabilidades entre as classes ou objetos.

MVC - Model, View e Controller


O Model-View-Controller (MVC) é um design pattern de arquitetura de software
amplamente utilizado para a construção de aplicativos web e de desktop. O objetivo do
padrão MVC é separar a lógica de negócios, a representação visual e a interação do
usuário em três componentes distintos:

1. Model: Representa os dados e a lógica de negócios da aplicação. É


responsável por armazenar e gerenciar os dados e fornecer informações sobre
eles ao controlador.

2. View: Representa a interface gráfica do usuário e é responsável por apresentar


os dados ao usuário.

3. Controller: Responsável por processar as ações do usuário e atualizar o model


e a view de acordo.

A referência mais conhecida relacionada a padrões de projeto de softwareé o livro


Design Patterns: Elements of Reusable Object-Oriented Software(Addison-Wesley,
1995),dos autores Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides.
Esses quatro autores são conhecidos como “The Gang of Four”(GoF).

Capítulo 3 - INSPIRING: ORM & JAVA 2.0 2


Model View Controller
1. Armazena o estado 1. Renderiza a 1. Realiza o roteamento
do aplicativo. interface do para a página
usuário (UI). correta.
2. Responde aos
pedidos de dados. 2. Solicita dados à 2. Mapeia as mudanças
camada Model de dados da UI para
3. Encapsula a lógica
para a camada o Modelo.
de negócios.
Controller.
3. Passa dados da
3. Envia eventos camada Viewpara a
àcamada camada Model.

Capítulo 3 - INSPIRING: ORM & JAVA 2.0 3


Modelatravés da 4. Essa arquitetura
camada Controller. serviu como uma
luva para o
4. Permite que o
desenvolvimento
Controllerselecione
Web.
a próxima View.

Essa arquitetura Oraclefoi implementada em Java, tendo os Servlets como responsáveis por
controlar o fluxo da aplicaçãoWeb (Controller), delegando a lógica de negócios para componentes,
geralmente JavaBeans ou EJBs (Model). Enquanto as páginas JSP geram o HTML, interface com
usuários, através denavegadores Web (View).

Fluxo MVC
Quando ousuário manipula uma View, um evento é gerado.

Os eventos, geralmente,fazem com que um Controllermude um Model, ou uma


View, ou ambos. Sempre que um Controller alterar as propriedades ou dados de um
Model, todas as Views dependentes serão automaticamente atualizadas.

Capítulo 3 - INSPIRING: ORM & JAVA 2.0 4


De forma semelhante, sempre que um Controller muda uma View, dados do Model
subjacente são obtidos pela View, para se atualizar

Vantagens
Redução da Fácil adição de novas Uma forma de associar
complexidade. fontes de dados, sem habilidades específicas
Eliminação do impacto na View. de desenvolvedores com

acoplamento entre as Adição fácil de novos componentes dedicados.


Ou seja, por exemplo,
camadas Model e View. tipos de clientes, sem
impacto em Model. programadores front se
Elementos mais
especializam e só
gerenciáveis e flexíveis Aumento da codificam a camada
que compõem a reutilização de
View.
arquitetura. componentes.
•Rastreamento mais fácil
de erros.

Capítulo 3 - INSPIRING: ORM & JAVA 2.0 5


a SAP, utilizando o MVC. A figura demonstra o SAPUI5, na arquitetura MVC, com HTML5
adaptado àcamada View da solução para cada tipo de dispositivo.

Capítulo 3 - INSPIRING: ORM & JAVA 2.0 6

Você também pode gostar