@startuml package com.iluwatar.sessionfacade { class App { + App() + main(args : String[]) {static} } class CartService { - LOGGER : Logger {static} - cart : List - productCatalog : List + CartService(cart : List, productCatalog : List) + addToCart(productId : int) + removeFromCart(productId : int) } class OrderService { - LOGGER : Logger {static} - cart : List + OrderService(cart : List) + order() } class PaymentService { + LOGGER : Logger {static} + PaymentService() + cashPayment() + creditCardPayment() + selectPaymentMethod(method : String) } class ProductCatalogService { - products : List + ProductCatalogService(products : List) } class ShoppingFacade { ~ cart : List ~ cartService : CartService ~ orderService : OrderService ~ paymentService : PaymentService ~ productCatalog : List + ShoppingFacade() + addToCart(productId : int) + order() + removeFromCart(productId : int) + selectPaymentMethod(method : String) } } ShoppingFacade --> "-cartService" CartService ShoppingFacade --> "-paymentService" PaymentService ShoppingFacade --> "-orderService" OrderService @enduml