我正在尝试在我的工作场所构建服务器和应用程序的模型。一台服务器可以托管许多应用程序。一个应用程序可以托管在许多服务器上。
通常我只会让主机类包含一个列表,而应用程序类包含一个列表。但是,有一些特定于特定主机-应用程序关系的字段。例如,UsedMb 表示主机上的应用程序使用的磁盘空间量。
当然,我可以有一个 HostedApplication 类来表示一个包含 UsedMb 字段的中间对象。Host 和 Application 类都将包含一个 List。
然而,问题在于,应用程序还需要了解其主机的某些方面,这些方面将包含在 Host 类中(例如,主机在地理上分布;应用程序需要知道它托管在多少个数据中心,因此它需要能够检查其所有主机的 DC 名称。
因此,我可以让 HostedApplication 类同时保存对它所引用的 Host 对象和 Application 对象的引用。但在某些情况下,我需要遍历所有应用程序(在其他情况下,需要遍历所有主机)。因此,我需要 3 个单独的列表,一个列表和列表,以及一个列表,以便能够根据需要遍历所有三个列表。
我的基本问题是,处理这种配置的标准方法是什么?所有选项都有优点和缺点。我提到的最后一个选项似乎最正确,但是有三个列表是不是有点过分了?有没有更优雅的解决方案?