123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import 'package:flutter_riverpod/flutter_riverpod.dart';
- import 'package:router/componentRouter/profile_service.dart';
- import '../ext/router_provider_container.dart';
- import 'app_service.dart';
- import 'main_service.dart';
- class ComponentServiceManager {
- // 私有构造函数
- ComponentServiceManager._internal();
- // 单例实例
- static final ComponentServiceManager _instance = ComponentServiceManager._internal();
- factory ComponentServiceManager() {
- return _instance;
- }
- // 存储 `ServiceProvider` 的 Map
- final Map<Type, Provider> _serviceProviders = {};
- // 添加 `ServiceProvider` 的方法
- void addServiceProvider<T>(Provider<T> provider) {
- _serviceProviders[T] = provider;
- }
- // 获取 `MainService` 的方法
- MainService get mainService {
- final provider = _serviceProviders[MainService];
- if (provider == null) {
- throw Exception('Provider for MainService not found.');
- }
- return routerContainer.read(provider as Provider<MainService>);
- }
- AppService get appService {
- final provider = _serviceProviders[AppService];
- if (provider == null) {
- throw Exception('Provider for AppService not found.');
- }
- return routerContainer.read(provider as Provider<AppService>);
- }
- ProfileService get profileService {
- final provider = _serviceProviders[ProfileService];
- if (provider == null) {
- throw Exception('Provider for ProfileService not found.');
- }
- return routerContainer.read(provider as Provider<ProfileService>);
- }
- // 在这里可以继续添加其他具体的服务获取方法
- // OtherService get otherService {
- // final provider = _serviceProviders[OtherService];
- // if (provider == null) {
- // throw Exception('Provider for OtherService not found.');
- // }
- // return routerContainer.read(provider as Provider<OtherService>);
- // }
- }
|