为特定设置创建类是一种好的做法吗

本文关键字:一种 设置 创建 | 更新日期: 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();
    }
}
相关文章: