mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-24 20:34:29 +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 Data 的生命周期(Load / Save / Reset / Migration)
|
||||||
/// - 编排 Settings Applicator 的 Apply 行为
|
/// - 编排 Settings Applicator 的 Apply 行为
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class SettingsModel<TRepository> : AbstractModel, ISettingsModel
|
public class SettingsModel<TRepository>(IDataLocationProvider locationProvider, TRepository repository)
|
||||||
|
: AbstractModel, ISettingsModel
|
||||||
where TRepository : class, ISettingsDataRepository
|
where TRepository : class, ISettingsDataRepository
|
||||||
{
|
{
|
||||||
private static readonly ILogger Log =
|
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, ISettingsData> _data = new();
|
||||||
private readonly ConcurrentDictionary<Type, Dictionary<int, ISettingsMigration>> _migrationCache = new();
|
private readonly ConcurrentDictionary<Type, Dictionary<int, ISettingsMigration>> _migrationCache = new();
|
||||||
private readonly ConcurrentDictionary<(Type type, int from), ISettingsMigration> _migrations = 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 =>
|
private ISettingsDataRepository DataRepository =>
|
||||||
_repository ?? throw new InvalidOperationException("ISettingsDataRepository not initialized.");
|
_repository ?? throw new InvalidOperationException("ISettingsDataRepository not initialized.");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user