┌─────────┐ ┌──────────────┐ ┌───────────────┐ │ClassUser│ │RequestHandler│ │SocketInterface│ └────┬────┘ └──────┬───────┘ └───────┬───────┘ │ RequestHandler(socket_interface) │ │ │────────────────────────────────────────> │ │ │ │ │ │────┐ │ │ │ │ Save the socket_interface │ │ │<───┘ │ │ │ │ │ request_handler │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ │request_handler.HandleRequest(some_data)│ │ │────────────────────────────────────────> │ │ │ │ │ │────┐ │ │ │ │ CheckTheData │ │ │<───┘ │ │ │ │ │ │ │ ╔══════════════╪══════╤═════════════════════════════════╪═══════════════════════════════════╪═════════════════╗ ║ SUCCESSFUL REQUEST │ │ │ ║ ╟─────────────────────┘ │ socket_interface.Write(some_data) │ ║ ║ │ │ ─────────────────────────────────>│ ║ ║ │ │ │ ║ ║ │ success │ │ ║ ║ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ║ ╚══════════════╪════════════════════════════════════════╪═══════════════════════════════════╪═════════════════╝ │ │ │ │ │ │ ╔══════════════╪════════╤═══════════════════════════════╪═════════════════╗ │ ║ UNSUCCESSFUL REQUEST │ │ ║ │ ╟───────────────────────┘ failure │ ║ │ ║ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ║ │ ╚══════════════╪════════════════════════════════════════╪═════════════════╝ │ ┌────┴────┐ ┌──────┴───────┐ ┌───────┴───────┐ │ClassUser│ │RequestHandler│ │SocketInterface│ └─────────┘ └──────────────┘ └───────────────┘