为特定设置创建类是一种好的做法吗
本文关键字:一种 设置 创建 | 更新日期: 2023-09-27 18:28:03
我目前正在编写一个Windows窗体应用程序。
现在,这个应用程序将通过TextBoxs等与用户交互
我设计了4个类来保存所有需要的设置(这将是DirectorySettings、LoopSettings,AttackSettings和AutoPotSettings),这将用于保存文本框中的值等等。
我把它们都做成了Serializable。
我的计划是保存这些类,以便以后恢复它们并加载在它们上定义的设置,这样它们就可以在各种应用程序会话中持久存在。
我的问题是,这是一个好的做法,还是有其他方法可以做到这一点?
这些设置值将在运行时多次使用,我希望我的用户能够将它们保存到以后的会话中。
编辑:当我读到"属性"时,出现了这个问题。保存设置的设置。我不确定我是否应该使用该功能,或者是否应该使用我自己的类来保存这些功能。
很有道理。也许可以创建一个用户配置文件类,其中包含有关游戏状态的所有与用户相关的内容。。然后序列化那个对象。U可以绑定到一个用户代码,这样当他们登录时,他们可以将所有与状态相关的信息返回
它允许人们拥有多个用户/游戏等,而不是单一状态
在类设计方面,您可以使用接口/抽象类来定义保存/读取行为,如下面提到的IGameState接口。它有两种方法a)SaveStateb)ReadState用于保存和读取状态。
然后你的类DirectorySettings,LoopSettings、AttackSettings、AutoPotSettings就可以实现这个接口了。在主程序中,您可以定义下面main方法中突出显示的抽象,这样main程序代码就可以与Settings列表解耦。
如果你有很多设置,并且你需要更多的控制,这种方法应该有助于轻松扩展系统。
class Program
{
static void Main(string[] args)
{
List<IGameState> lstSaveState = new List<IGameState>();
// For Saving State
lstSaveState.ForEach(x=>x.SaveState());
// For Reading State
lstSaveState.ForEach(x => x.ReadState());
}
}
public interface IGameState
{
void SaveState();
IGameState ReadState();
}
public class DirectorySettings : IGameState
{
public void SaveState()
{
// Serialize
}
public IGameState ReadState()
{
// Deserialize
throw NotImplementedException();
}
}
public class LoopSettings : IGameState
{
public void SaveState()
{
// Serialize
}
public IGameState ReadState()
{
// Deserialize
throw NotImplementedException();
}
}