1

我不确定我可以拥有哪些课程来适应现有的在线视频游戏系统。这是我想要实现的目标:

  • 从服务器中的对象获取一系列设置。
  • 监听客户端连接。
  • 对于每个客户端,检查客户端上的设置是否与服务器上的设置一致。
  • 如果设置不对应(某些内容已被篡改),请断开客户端或更改其设置。

这将由充当入口点并可以充当控制器形式的类处理。

现在,这些设置分布在多个实例中:玩家、武器、旗帜、灯光等。在程序编程中,我会获取所有这些信息并将其存储为一个数组。但是,根据 OO 方法,有没有更好的方法来做到这一点?我可以创建一个或多个具有这些设置值并充当外观形式的类吗?

4

1 回答 1

1

将设置数据和行为封装到至少一个对象(即Settings)中。根据您的系统是如何构建的,这可能成为其他对象组合的一部分(例如Player,Weapon等...),可能通过依赖注入,或从某些全局上下文中引用。Settings负责验证客户端和服务器之间的匹配(例如Settings.validateClientServerSettingsMatch())。在检索个人设置方面,两种可能的方法是显式的或隐式的。

显式

您的Settings对象,或者可能构成其组合的其他实体,具有管理每个设置的方法。所以它可能类似于Settings.getPlayerSettings().getSomeSetting()“Settings.getSomePlayerSetting()”。嵌套的方式实际上取决于您的系统。两者都具有明确哪些设置可用于客户端开发的优点,并且如果您使用诸如 Java 之类的语言,它会提供编译时类型检查。每次新设置开始发挥作用时,都需要更改对象。

隐式

这只是在对象中有一个通用方法Settings- Settings.getSetting(settingName). 这使得添加设置变得非常容易,但以牺牲任何有用的类型检查为代价,除非您使用 Python 或 Ruby 等语言中的某种元魔法或 Java 中的大案例语句自行执行某些操作。

于 2011-02-18T19:35:40.860 回答