Padrões de Software – State

O State é um padrão  que utiliza composição de classes para representar a variação de comportamento de uma determinada entidade durante a execução de um sistema. Segundo Guerra, essas classes seguem uma abstração comum (interface ou superclasse) e os métodos de negócio delegam para esse objeto a responsabilidade de controlar o estado. Simplificando a manutenção e eliminando condicionais no código.

Um exemplo de aplicação do State Pattern é o seguinte: recursos são solicitados para projetos por clientes e aprovados ou recusados por analistas e gestores da empresa. A Figura 1 exibe o diagrama representando o fluxo de estados para a solicitação.

diagramadeestado
Figura 1. Diagrama de Estados para um Recurso Solicitado

Continuar lendo

Padrões de Software: Por quê?

Os chamados Padrões de Projeto de Software são simplesmente técnicas aplicadas no desenvolvimento de sistemas visando simplificar a escrita e organização de código, facilitando a compreensão dos problemas resolvidos e futuras alterações.

“Mais importante do que entender como é a implementação de um padrão de projeto, é entender a sua motivação: em quais casos faz sentido e deve ser aplicado.” (ANICHE)

Estudando pelo curso Design Patterns Java: Boas práticas de programação na plataforma online de ensino Alura, as seguinte questões foram feitas ao final:

Usar padrões 100% do tempo é o ideal? Quais são as vantagens e desvantagens?

designpatterns-720x340

Continuar lendo

Padrões de Software – Composite

O Composite é um padrão estrutural que compartilha objetos em estruturas de árvore para representar hierarquias parte-todo, permitindo que clientes tratem objetos individuais e composições de objetos uniformemente. Ele é utilizado para aplicações que desejam ignorar a diferença entre composição de objetos e objetos individuais.

Um exemplo de problema solucionado pelo Composite é o seguinte: um congresso inscreve participantes que podem ser um indivíduo ou uma instituição, e cada indivíduo tem um assento no congresso.

Segue abaixo o diagrama de classes e o código fonte que demonstram a implementação do padrão como solução.

Diagrama de Classes utilizando o padrão Composite
Diagrama de Classes utilizando o padrão Composite como solução

Continuar lendo