F
Flutter Friendly
@flutterfriendly1.0K подп.
759просмотров
74.4%от подписчиков
13 февраля 2026 г.
📷 ФотоScore: 835
💭Привет! Это Анна, Flutter Team Lead Friflex Сегодня поговорим про механизмы ограничения доступа объектов в Dart. Простыми словами — какие есть варианты подсветить, что объект не должен использоваться извне. 1️⃣ Начнем с банального — использования «_» final String _privateData; void _doExample() {} Символ «_» в начале названия говорит о том, что объект может использоваться только в рамках текущей библиотеки. Кроме того, что он самый известный, он — фактически единственный действительно ограничивающий. Проект не сможет быть скомпилирован, пока приватный объект будет использоваться вне допустимого участка кода. 2️⃣ @protected Аннотация @protected говорит о том, что объект доступен только внутри класса и в классах наследниках. Здесь очень важно понимать, что аннотация никак не ограничивает компиляцию и работу программы. Единственное, что вы получите при неправильном использовании защищенного объекта — замечание анализатора invalid_use_of_protected_member // файл parent.dart class Parent { @protected void doProtected() {} } ... // файл child.dart class Child extends Parent { void doExample() { doProtected(); // допустимо } } void main() { final parent = Parent(); parent.doProtected(); // вызывает предупреждение анализатора } 3️⃣ @visibleForTesting Еще одна ограничивающая аннотация. Она как бы говорит — «да, я публичный, но только для того, чтобы быть доступным в тестах». Будет точно полезно для тех, кто покрывает проект тестами // файл lib/parent.dart class Parent { @visibleForTesting void doExample() {} } ... // файл lib/main.dart void main() { final parent = Parent(); parent.doExample(); // вызывает предупреждение анализатора invalid_use_of_visible_for_testing_member } ... // файл test/parent_test.dart void main() { test('Тестируем @visibleForTesting', () { final test = Parent(); test.doExample(); // допустимо }); } Важно понимать — хотя реальное ограничение всего одно, аннотации тоже не стоит списывать со счетов. Они подсвечивают намерение разработчика, обозначают границы ответственности и помогают поддерживать архитектурную дисциплину. ❤️ — если было полезно
759
просмотров
2165
символов
Нет
эмодзи
Да
медиа

Другие посты @flutterfriendly

Все посты канала →
💭Привет! Это Анна, Flutter Team Lead Friflex Сегодня погово — @flutterfriendly | PostSniper