Skip to content

dmribeiro0/CoffeeteriaApp

Repository files navigation

Obs: Esse projeto é um exemplo de implementação do padrão Decorator em um sistema baseado em uma cafeteria. Foi desenvolvido durante a disciplina de Projeto Orientado a Objeto na Universidade Federal de São Paulo (UNIFESP - SJC).

Exercício prático: Padrão Decorator em uma Cafeteria

Uma cafeteria deseja desenvolver um sistema para montagem de bebidas personalizadas. O cliente pode pedir uma bebida base, como café expresso, cappuccino ou chá, e adicionar complementos como leite, chantilly, canela e calda de chocolate. Como diferentes combinações são possíveis, criar uma classe para cada variação tornaria o sistema rígido e difícil de manter.

Objetivo

Implementar uma solução orientada a objetos que:

  • utilize o padrão Decorator para adicionar responsabilidades dinamicamente;
  • permita combinar múltiplos adicionais sem alterar as classes base;
  • calcule corretamente a descrição final e seu custo total;
  • demonstre flexibilidade e extensibilidade na composição.

Resultado esperado

"O cliente deve poder montar bebidas personalizadas de forma dinâmica, combinando adicionais em tempo de execução, sem explosão no número de classes."

Estrutura do projeto

  • IBeverage: Interface que define o contrato para as bebidas.
  • Espresso, Cappuccino, Tea: Classes concretas que implementam IBeverage e representam as bebidas base.
  • BeverageDecorator: Classe abstrata que implementa IBeverage e serve como base para os decoradores.
  • Milk, WhippedCream, Chocolate: Decoradores concretos que estendem BeverageDecorator e adicionam funcionalidades específicas.
  • Program: Classe principal para demonstrar a montagem de bebidas personalizadas.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages