Files
cherrypick/cherrypick/example/disposable_example.dart
Sergey Penkovsky 16cd7199aa fix: fix examples
2025-09-05 09:37:24 +03:00

40 lines
1.1 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:cherrypick/cherrypick.dart';
/// Ваш сервис с освобождением ресурсов
class MyService implements Disposable {
bool wasDisposed = false;
@override
void dispose() {
// Например: закрыть соединение, остановить таймер, освободить память
wasDisposed = true;
print('MyService disposed!');
}
void doSomething() => print('Doing something...');
}
/// Пример модуля CherryPick
class ModuleImpl extends Module {
@override
void builder(Scope scope) {
bind<MyService>().toProvide(() => MyService()).singleton();
}
}
void main() {
final scope = CherryPick.openRootScope();
// Регистрируем биндинг (singleton для примера)
scope.installModules([
ModuleImpl(),
]);
// Получаем зависимость
final service = scope.resolve<MyService>();
service.doSomething(); // «Doing something...»
// Освобождаем все ресурсы
scope.dispose();
print('Service wasDisposed = ${service.wasDisposed}'); // true
}