Design Maps Navigator Client for different transportation types

Medium
Company: Premium
GoogleAmazonUber

Imagine you're building a Maps Navigator client that can provide directions and navigation information for various transportation types: driving, walking, cycling, and public transport. Each transportation type has its own specific routing logic and data requirements (e.g., driving needs road information, public transport needs schedules). The system needs to be extensible to support new transportation types in the future without modifying existing code extensively. Furthermore, certain navigation steps (like recalculating route) need to be done concurrently to avoid blocking the main thread. The existing client has some issues with tight coupling between the navigation logic and the UI, making it difficult to test and maintain. We need a robust and well-designed solution addressing these issues.

Requirements

Think like an Architect

Before revealing the requirements, imagine you're in the interview right now."How would you clarify the scope with your interviewer?"

Premium Content

View detailed solutions.

UNLOCK PREMIUM