Junior — Middle
187
Можешь привести пример, когда принцип разделения интерфейсов применяется на практике?
Сұралған компаниялар
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;
}
}
Здесь классы разделены по интерфейсам, и каждый реализует только те методы, которые ему нужны. Это облегчает тестирование и поддержку кода.