A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Design Patterns Builder Pattern Projeto de Sistemas de Software João Campos Abril de 2009.

Apresentações semelhantes


Apresentação em tema: "Design Patterns Builder Pattern Projeto de Sistemas de Software João Campos Abril de 2009."— Transcrição da apresentação:

1 Design Patterns Builder Pattern Projeto de Sistemas de Software João Campos Abril de 2009

2 © LES/PUC-Rio Sumário Builder o Propósito o Motivação o Aplicabilidade o Estrutura o Participantes o Colaboradores o Consequência o Exemplo

3 © LES/PUC-Rio Design Patterns 1.Abstract Factory 2.Builder 3.Factory Method 4.Prototype 5.Singleton 6.Adapter 7.Bridge 8.Composite 9.Decorator 10.Facade 11.Flyweight 12.Proxy 1.Chain of Responsibility 2.Command 3.Interpreter 4.Iterator 5.Mediator 6.Memento 7.Observer 8.State 9.Strategy 10.Template Method 11.Visitor Padrões de Criação Padrões Estruturais Padrões de Comportamento

4 © LES/PUC-Rio Builder Propósitos o Encapsular a construção de um objeto (normalmente um produto). o Permitir que o objeto (produto) seja construído passo-a- passo.

5 © LES/PUC-Rio Builder Motivação o Considere um exemplo de planejamento de viagem em uma agência de viagens. o O cliente pede que o agente de viagens crie um pacote de uma semana na França. o O agente monta o itinerário da viagem, faz as reservas de hotel e compra os ingressos para diversos eventos, etc. o Cada dia da viagem pode ser configurado de modo diferente dos outros dias. o A complexidade de se montar um plano de viagens é tratada pelo agente de viagens, que detém o know-how. O cliente apenas dirige o agente de viagens (Builder) na construção do plano. O cliente não precisa saber quais são os hotéis disponíveis e como reservá-los. Não precisa saber como comprar uma entrada para o Museu do Louvre. o A montagem do plano pode ser feita passo-a-passo ou dia-a-dia e com muitas variações.

6 © LES/PUC-Rio Builder Aplicabilidade o Quando se quer ter a capacidade de construir diferentes tipos de objetos complexos, mantendo o controle sobre o processo de construção no código cliente.

7 © LES/PUC-Rio Builder Estrutura

8 © LES/PUC-Rio Builder Participantes: o Builder - interface abstrata para criar objetos (produtos). o Concrete Builder - provê implementação para o Builder. Constrói e junta partes para construir objetos. o Director - responsável por gerenciar a correta sequencia de criação de objetos. o Product - o objeto final que será criado pelo Director.

9 © LES/PUC-Rio Builder Colaboração DirectorConcreteBuilder Product Constrói Construtor 1 1 Builder A collaboration is a group of objects interacting together to accomplish some functionality

10 © LES/PUC-Rio Builder Consequências o Esconde os detalhes de como o produto é montado. o Cada Builder específico é independente de qualquer outro e do resto do programa. Isso aumenta a modularidade. o Mais controle sobre cada produto final que o Builder constrói.

11 © LES/PUC-Rio Builder Exemplo Client constructPlanner() AbstractBuilder buildDay() addHotel() addReservation() addSpecialDay() addTickets() getVacantionPlanner() VacationBuilder buildDay() addHotel() addReservation() addSpecialDay() addTickets() getVacantionPlanner() Builder buildDay(date); Builder.addHotel(date, Grand Facadian); Builder.addTickets(Patterns on Ice) Planner yourPlanner = builder getVacationPlanner() O cliente dirige o builder para a construção do planner O cliente dirige o builder para criar o planner em um número de passos e então chama o método getVacationPlanner() O cliente usa uma interface abstrata para montar o plano O builder concreto cria produtos reais e os armazena na vacation composite structure Builder

12 © LES/PUC-Rio Builder Referências o UML 2 for Dummies Por Michael Jesse Chonoles, James A. Schardt o Head First Design Patterns Por Eric Freeman; Elisabeth Freeman; Kathy Sierra; Bert Bates. o o

13 Obrigado pela atenção! : )


Carregar ppt "Design Patterns Builder Pattern Projeto de Sistemas de Software João Campos Abril de 2009."

Apresentações semelhantes


Anúncios Google