@startuml
package com.iluwatar.api.gateway {
  class ApiGateway {
    - imageClient : ImageClient
    - priceClient : PriceClient
    + ApiGateway()
    + getProductDesktop() : DesktopProduct
    + getProductMobile() : MobileProduct
  }
  class App {
    + App()
    + main(args : String[]) {static}
  }
  class DesktopProduct {
    - imagePath : String
    - price : String
    + DesktopProduct()
    + getImagePath() : String
    + getPrice() : String
    + setImagePath(imagePath : String)
    + setPrice(price : String)
  }
  interface ImageClient {
    + getImagePath() : String {abstract}
  }
  class ImageClientImpl {
    + ImageClientImpl()
    + getImagePath() : String
  }
  class MobileProduct {
    - price : String
    + MobileProduct()
    + getPrice() : String
    + setPrice(price : String)
  }
  interface PriceClient {
    + getPrice() : String {abstract}
  }
  class PriceClientImpl {
    + PriceClientImpl()
    + getPrice() : String
  }
}
ApiGateway -->  "-imageClient" ImageClient
ApiGateway -->  "-priceClient" PriceClient
ImageClientImpl ..|> ImageClient 
PriceClientImpl ..|> PriceClient 
@enduml