49 lines
942 B
C#
49 lines
942 B
C#
namespace NBF.Setting
|
|
{
|
|
public interface IOptionBase
|
|
{
|
|
string Name { get; }
|
|
void Initialize();
|
|
void Apply();
|
|
}
|
|
|
|
public abstract class OptionBase : IOptionBase
|
|
{
|
|
protected string SaveKey => $"Setting_{Group}_{Name}";
|
|
|
|
public abstract string Name { get; }
|
|
|
|
/// <summary>
|
|
/// 所在组
|
|
/// </summary>
|
|
public abstract string Group { get; }
|
|
|
|
public void Initialize()
|
|
{
|
|
OnInitialize();
|
|
Load();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 加载用户的设置
|
|
/// </summary>
|
|
public void Load()
|
|
{
|
|
OnLoad();
|
|
}
|
|
|
|
public void Apply()
|
|
{
|
|
OnApply();
|
|
}
|
|
|
|
protected abstract void OnInitialize();
|
|
|
|
|
|
protected abstract void OnApply();
|
|
|
|
protected abstract void OnReset();
|
|
|
|
protected abstract void OnLoad();
|
|
}
|
|
} |