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

Feature Driven Development (FDD)

O Desenvolvimento Guiado Por Funcionalidades (FDD) é uma metodologia ágil para o processo de engenharia de software, elaborado com foco na entrega freqüente de “software funcionando” para os clientes e na utilização de boas práticas durante o ciclo de seu desenvolvimento.

Criado em 1997 num grande projeto de sistema de empréstimos em Java para o banco United Overseas Bank, em Singapura. União entre a experiência de análise e modelagem OO de Peter Coad, e o gerencimento de projetos de Jeff De Luca.

– Site Oficial e Conceito no WikiPedia:


Heptagon – Consultoria e Treinamento em FDD.

– Entrevista Com Jeff DeLuca Sobre FDD (PodCast em Inglês)