类图:创建一个额外的类来集中来自现有系统的信息?

时间:2011-02-18 13:24:00

标签: oop uml class-diagram

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

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

这将由作为入口点的类处理,并且可以作为控制器的形式。

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

1 个答案:

答案 0 :(得分:1)

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

您的Settings对象或构成其组成的其他实体拥有管理的每个设置的方法。所以它可能是Settings.getPlayerSettings().getSomeSetting()或'Settings.getSomePlayerSetting()`。嵌套的方式实际上取决于您的系统。要么具有明确客户端开发可用设置的优点,要么在使用Java等语言时进行编译时类型检查。每次新设置发挥作用时,权衡需要改变对象。

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