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; }
///
/// 所在组
///
public abstract string Group { get; }
public void Initialize()
{
OnInitialize();
Load();
}
///
/// 加载用户的设置
///
public void Load()
{
OnLoad();
}
public void Apply()
{
OnApply();
}
protected abstract void OnInitialize();
protected abstract void OnApply();
protected abstract void OnReset();
protected abstract void OnLoad();
}
}