Description
Durante a navegação, o usuário adiciona diversos Shopping\Product
ao Shopping\Cart
, com suas respectivas quantidades. Ao concluir a escolha e adição dos produtos, existe a opção por finalizar a compra, transformando um Shopping\Cart
em um Shopping\Order
.
Enquanto um Shopping\Cart
é apenas um agregador de Shopping\Product
, um Shopping\Order
envolve alguns comportamentos adicionais, como total da compra, descontos, taxas, etc. O design de um Shopping\Order
deve ser de tal forma que esse participante possa reaproveitar as implementações para iteração dos itens do carrinho, adicionando os comportamentos específicos relacionados com o pedido e sua finalização.
Como deve ser, então, o design de um Shopping\Order
?
- Ele deve derivar
Shopping\Cart
? - Ele deve implementar alguma interface específica?
Como implementar as possíveis opções de pagamento, entrega de mercadoria, descontos, etc, e como esses participantes devem interagir com o Shopping\Order
?
Activity