Junior — Middle
In what cases is it recommended to use interfaces in system design?
sobes.tech AI
Answer from AI
Interfaces are recommended to be used in the following cases:
- When you need to define a contract (a set of methods) that different classes should implement, ensuring polymorphism.
- To separate abstraction from implementation, which facilitates component replacement and testing.
- When designing modular and extensible systems, where different implementations can be used interchangeably.
- To simplify writing tests using mock objects that implement interfaces.
- When you need to ensure loose coupling between components.
For example, if you have different data sources (file, database, network), you can define a DataSource interface with a readData() method, and specific classes implement this interface in their own way.