mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
refactor(setting): 更新 SettingsModel 构造函数注入依赖项
- 将 IDataLocationProvider 和 TRepository 从属性注入改为构造函数参数注入 - 移除字段初始化器中的空值赋值操作 - 简化依赖项的初始化流程,提高代码可读性 - 保持原有的数据仓库访问逻辑不变 - [release ci]
This commit is contained in:
parent
70421159e4
commit
e2fef7110d
@ -13,7 +13,8 @@ namespace GFramework.Game.setting;
|
||||
/// - 管理 Settings Data 的生命周期(Load / Save / Reset / Migration)
|
||||
/// - 编排 Settings Applicator 的 Apply 行为
|
||||
/// </summary>
|
||||
public class SettingsModel<TRepository> : AbstractModel, ISettingsModel
|
||||
public class SettingsModel<TRepository>(IDataLocationProvider locationProvider, TRepository repository)
|
||||
: AbstractModel, ISettingsModel
|
||||
where TRepository : class, ISettingsDataRepository
|
||||
{
|
||||
private static readonly ILogger Log =
|
||||
@ -28,9 +29,9 @@ public class SettingsModel<TRepository> : AbstractModel, ISettingsModel
|
||||
private readonly ConcurrentDictionary<Type, ISettingsData> _data = new();
|
||||
private readonly ConcurrentDictionary<Type, Dictionary<int, ISettingsMigration>> _migrationCache = new();
|
||||
private readonly ConcurrentDictionary<(Type type, int from), ISettingsMigration> _migrations = new();
|
||||
private IDataLocationProvider? _locationProvider;
|
||||
private IDataLocationProvider? _locationProvider = locationProvider;
|
||||
|
||||
private ISettingsDataRepository? _repository;
|
||||
private ISettingsDataRepository? _repository = repository;
|
||||
|
||||
private ISettingsDataRepository DataRepository =>
|
||||
_repository ?? throw new InvalidOperationException("ISettingsDataRepository not initialized.");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user