DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 
DevWare  
Novidade: DevMedia lança o DevWare - Saiba mais!


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

artigo sql magazine 47 - Objetos também são hospitaleiros

Artigo da revista SQL Magazine edição 47.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

Esse artigo faz parte da revista SQL Magazine edição 47. Clique aqui para ler todos os artigos desta edição

 

Objetos também são hospitaleiros

No artigo anterior, aprendemos um pouco sobre um padrão de projeto conhecido por Composite. Esse pattern padroniza uma solução para lidar com estruturas de árvores de forma unificada e flexível.

Ao invés de árvores, aqui vamos abordar a importância de conhecer como um objeto pode ser hospitaleiro e quão saudável é fazê-lo visitar outros objetos. Mas assim como no mundo real, o virtual também não é perfeito. Essas visitas têm suas desvantagens e a onerosidade, de suas conseqüências, precisa ser bem analisada.

Acredito que exemplos ao estilo “Cachorro herda de Mamífero” ou “Se grasnar, então é Pato” são importantes para motivar os iniciantes, mas não são eficientes quando aplicados à vida real. Também creio que não podemos ser tão realistas na escolha dos exemplos, sob pena de perdemos o foco no propósito do artigo. Dessa forma, procurei buscar exemplos em situações reais, mas sem permitir que essa realidade se torne um pesadelo.

 

O Cliente e seu Problema

A ABC é uma tradicional empresa especializada na criação de provas para os mais diversos tipos de concursos. A única responsabilidade da ABC é confeccionar as provas e vendê-las a quem interessar, esse por sua vez, se responsabiliza pela aplicação e organização do concurso.

Apesar da grande experiência da ABC, há vinte e sete anos no mercado, essa empresa começou, por pressão de seus clientes, a automatizar seus processos há pouco tempo. Para isso foi desenvolvido o ABC Sis, um sistema para criação e manutenção de provas. Esse sistema permite criar provas, e nelas inserir suas questões, e essas recebem seus itens. Para atender as necessidades desse sistema de uma maneira natural e flexível, o analista de sistemas leu o artigo anterior sobre Composite, e se inspirou nesse padrão para modelar o design do ABC Sis (veja Figura 1).

 

 

                                Figura 1. Design do ABC Sis.

 

Esse modelo é bem poderoso, apesar da simplicidade, pois suporta as mais diversas estruturas de Provas. Observe que a Classe ItemGenerico é abstrata e possui uma composição para sua própria interface, isso permite que qualquer estrutura (Prova, QuestaoRepostaUnica, etc) possa conter ou está contida em outra estrutura. Por herança, todas as classes concretas possuem os métodos adicionar e remover, que recebem um Item como parâmetro. É através desses métodos que adicionamos ou removemos um item a outro.

A Listagem 1 mostra o código que o ABC Sis utiliza para criar uma prova.

 

Listagem 1. Código do ABC Sis para gerar prova.

Prova prova = new Prova("Concurso para Chefe de Cozinha - 2007");

 

QuestaoMultiplaEscolha q1 = new QuestaoMultiplaEscolha("O que oferecer a um programador Java?");

prova.adicionar(q1);

 

q1.adicionar(new CheckBoxOpcaoQuestao("Vodka"));

q1.adicionar(new CheckBoxOpcaoQuestao("Café"));

q1.adicionar(new CheckBoxOpcaoQuestao("Leite"));"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Fabio Santiago
Fabio Santiago tem 28 anos, formado em Análise de Sistemas pela UNIFOR. É certificado SUN (SCJP). Atualmente é Consultor Web independente, e Engenheiro de Software do Instituto Atlântico pela IVIA. Foi Engenheiro de Sistemas do C.E.S.A.R (Centro de Estudos e Sistemas Avançados do Recife) para p...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
[Fechar] Você precisa estar logado para dar seu feedback.

Clique aqui para efetuar o login

Caso não tenha um cadastro DevMedia, clique aqui para se cadastrar (gratuito)
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03