Абстракция во Flutter, как и в программировании в целом, сводится к сокрытию сложной реализации и предоставлению упрощенного интерфейса для взаимодействия. Это достигается путем создания высокоуровневых представлений, которые скрывают нижележащие детали и позволяют работать с концепциями, а не с конкретными реализацией.
Основные идеи:
Примеры в Flutter:
Container, Row, Column и другие, не зная их внутренней реализации в деталях.Future и Stream абстрагируют работу с асинхронными операциями, скрывая детали работы с потоками и событиями.Пример кода с использованием абстракции:
dart
В этом примере Repository взаимодействует только с абстракцией DataSource, не заботясь о том, откуда именно приходят данные (HTTP, локальное хранилище и т.д.). Это позволяет легко менять источник данных, не меняя код Repository.