对象生命周期管理和IoC容器

Ale*_*rer 12 dependency-injection inversion-of-control

我正在将游戏从单人游戏更新为多人游戏.在这种情况下,游戏最初编写的大部分类都是单一实例.例如,有一个Player对象,一个GameState对象等.也就是说,这些对象中的每一个都与应用程序一样长.

既然不止一个玩家可以一次玩,我显然需要支持创建多个Player对象,GameState对象等.在这个过程中,我逐渐意识到大多数对象都有三个生命之一:

  1. 应用程序的生命周期,例如处理导航的指挥
  2. 玩家的生命周期,例如当前玩家的SettingsViewModel
  3. 游戏的生命周期,例如当前游戏的GameState

我很好奇其他人如何使用IoC容器处理这些不同对象的创建.我想避免为玩家或游戏生命周期的每个类创建工厂类.

Cod*_*ops 0

是一个可能有帮助的 IOC 示例。该项目称为 IOC-with-Ninject。它使用 Ninject 加上 IOC 容器类来管理所有对象的生命周期。您需要对 Ninject进行一些研究才能根据您的特定需求对其进行自定义,但如果您使用 .NET,那么这是您的 IOC 容器解决方案(恕我直言),并且将帮助您组织代码库。这是个人选择,但我发誓。如果您不使用 .NET,它仍然会为您提供一个易于遵循的模式。干杯。