@startuml package com.iluwatar.business.delegate { class App { + App() + main(args : String[]) {static} } class BusinessDelegate { - lookupService : BusinessLookup + BusinessDelegate() + playbackMovie(movie : String) + setLookupService(lookupService : BusinessLookup) } class BusinessLookup { - netflixService : NetflixService - youTubeService : YouTubeService + BusinessLookup() + getBusinessService(movie : String) : VideoStreamingService + setNetflixService(netflixService : NetflixService) + setYouTubeService(youTubeService : YouTubeService) } class MobileClient { - businessDelegate : BusinessDelegate + MobileClient(businessDelegate : BusinessDelegate) + playbackMovie(movie : String) } class NetflixService { - LOGGER : Logger {static} + NetflixService() + doProcessing() } interface VideoStreamingService { + doProcessing() {abstract} } class YouTubeService { - LOGGER : Logger {static} + YouTubeService() + doProcessing() } } BusinessLookup --> "-netflixService" NetflixService BusinessLookup --> "-youTubeService" YouTubeService MobileClient --> "-businessDelegate" BusinessDelegate BusinessDelegate --> "-lookupService" BusinessLookup NetflixService ..|> VideoStreamingService YouTubeService ..|> VideoStreamingService @enduml