Back to questions
Andersen
Junior — Middle
137
Можешь привести пример, когда принцип разделения интерфейсов применяется на практике?
Companies where asked
Answer from AI
sobes.tech AI
Принцип разделения интерфейсов (Interface Segregation Principle, ISP) гласит, что клиенты не должны зависеть от интерфейсов, которые они не используют. Это помогает создавать более гибкие и поддерживаемые системы.
В Flutter этот принцип часто применяется при проектировании виджетов и сервисов. Например, если у вас есть интерфейс для работы с сетью, не стоит заставлять все классы реализовывать методы для кэширования, если они этого не делают.
Пример:
abstract class NetworkService {
Future<String> fetchData();
}
abstract class CacheService {
void saveData(String data);
String? loadData();
}
class ApiService implements NetworkService {
@override
Future<String> fetchData() async {
// Реализация запроса к API
return 'Данные с сервера';
}
}
class CacheManager implements CacheService {
String? _cache;
@override
void saveData(String data) {
_cache = data;
}
@override
String? loadData() {
return _cache;
}
}
Здесь классы разделены по интерфейсам, и каждый реализует только те методы, которые ему нужны. Это облегчает тестирование и поддержку кода.