将设置数据和行为封装到至少一个对象(即Settings
)中。根据您的系统是如何构建的,这可能成为其他对象组合的一部分(例如Player
,Weapon
等...),可能通过依赖注入,或从某些全局上下文中引用。Settings
负责验证客户端和服务器之间的匹配(例如Settings.validateClientServerSettingsMatch()
)。在检索个人设置方面,两种可能的方法是显式的或隐式的。
显式
您的Settings
对象,或者可能构成其组合的其他实体,具有管理每个设置的方法。所以它可能类似于Settings.getPlayerSettings().getSomeSetting()
“Settings.getSomePlayerSetting()”。嵌套的方式实际上取决于您的系统。两者都具有明确哪些设置可用于客户端开发的优点,并且如果您使用诸如 Java 之类的语言,它会提供编译时类型检查。每次新设置开始发挥作用时,都需要更改对象。
隐式
这只是在对象中有一个通用方法Settings
- Settings.getSetting(settingName)
. 这使得添加设置变得非常容易,但以牺牲任何有用的类型检查为代价,除非您使用 Python 或 Ruby 等语言中的某种元魔法或 Java 中的大案例语句自行执行某些操作。