@startuml left to right direction skinparam nodesep 50 package "Core" { interface EmailSenderUseCase { + sendEmail(to: String, subject: String, body: String) } class EmailRequest { + to: String + subject: String + body: String } class EmailServiceException } package "Application" { class EmailSenderService { - emailSenderGateway: EmailSenderGateway + sendEmail(to: String, subject: String, body: String) } } package "Adapters" { interface EmailSenderGateway { + sendEmail(to: String, subject: String, body: String) } } package "Infra" { class AwsSesEmailSender { - amazonSimpleEmailService: AmazonSimpleEmailService + sendEmail(to: String, subject: String, body: String) } class AwsSesConfig { + amazonSimpleEmailService(): AmazonSimpleEmailService } } package "Controllers" { class EmailSenderController { - emailSenderService: EmailSenderService + sendEmail(request: EmailRequest): ResponseEntity<String> } } EmailSenderService ..|> EmailSenderUseCase AwsSesEmailSender ..|> EmailSenderGateway EmailSenderService --> EmailSenderGateway EmailSenderController --> EmailSenderService @enduml
Decode URL
Submit
amiga
aws-orange
black-knight
bluegray
blueprint
cerulean-outline
cerulean
crt-amber
crt-green
cyborg-outline
cyborg
hacker
lightgray
mars
materia-outline
materia
metal
mimeograph
minty
plain
reddress-darkblue
reddress-darkgreen
reddress-darkorange
reddress-darkred
reddress-lightblue
reddress-lightgreen
reddress-lightorange
reddress-lightred
sandstone
silver
sketchy-outline
sketchy
spacelab
spacelab-white
superhero-outline
superhero
toy
united
vibrant
🎉 Discover the future PlantUML Web Editor! 🚀
PNG
SVG
ASCII Art