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

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

Design Patterns Builder Pattern

Apresentações semelhantes


Apresentação em tema: "Design Patterns Builder Pattern"— Transcrição da apresentação:

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

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

3 Design Patterns Abstract Factory Builder Factory Method Prototype
Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor Padrões de Criação Padrões Estruturais Padrões de Comportamento © LES/PUC-Rio

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

5 Builder Motivação Considere um exemplo de planejamento de viagem em uma agência de viagens. O cliente pede que o agente de viagens crie um pacote de uma semana na França. O agente monta o itinerário da viagem, faz as reservas de hotel e compra os ingressos para diversos eventos, etc. Cada dia da viagem pode ser configurado de modo diferente dos outros dias. 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. A montagem do plano pode ser feita passo-a-passo ou dia-a-dia e com muitas variações. © LES/PUC-Rio

6 Builder Aplicabilidade
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.  © LES/PUC-Rio

7 Builder Estrutura © LES/PUC-Rio

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

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

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

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

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

13 Obrigado pela atenção! : )


Carregar ppt "Design Patterns Builder Pattern"

Apresentações semelhantes


Anúncios Google