相关疑难解决方法(0)

什么是单身人士的替代品

我们有一个类,用于保存应用程序的配置信息.它曾经是一个单身人士.经过一些建筑评论后,我们被告知要删除单身人士.我们确实看到了在单元测试中不使用单例的一些好处,因为我们可以同时测试不同的配置.

如果没有单例,我们必须在代码中的任何地方传递实例.它变得如此混乱,所以我们编写了一个单独的包装器.现在我们将相同的代码移植到PHP和.NET,我想知道是否有更好的模式我们可以用于配置对象.

java singleton design-patterns

112
推荐指数
3
解决办法
4万
查看次数

C++:在类中使用静态容器包含指向其所有对象的指针以便于访问是不是很糟糕?

我想知道在类中有一个静态容器来存储类对象的所有指针是不好的做法,这样它们都可以被程序的基类轻松访问.这是一个游戏,我在sdltutorials dot com上看到它,我发现它非常有用.它会让我有一个非常整洁的游戏结构,我真的没有看到这样的缺点,但我知道我必须小心"全球"访问,也许有一个负面影响,我看不到正确现在.

这是上下文/示例.游戏有一个基类,有基本方法,如Loop(),Render(),PlayAudio(),CleanMemory().我们的想法是让单个对象在base方法中执行相同的方法.伪代码示例:

Game::Render() {

  for (iterate all enemies in static container) {

     current_enemy::Render();
  }
}
Run Code Online (Sandbox Code Playgroud)

可以肯定的是,类中的静态成员将如下所示:

static std::vector<Enemy*>    EnemyList;
Run Code Online (Sandbox Code Playgroud)

所以这样,当你的游戏执行基础Render()方法时,你可以迭代敌人的类静态容器中的所有敌人并执行它们各自的Render()方法,然后对环境对象执行相同的操作,那么对于玩家等

我想确保我知道如果我选择这种方法来构建我的游戏可能遇到的任何缺点/复杂/限制,因为我现在没有看到任何东西,但我知道必须小心静态和全球的东西.

非常感谢你花时间陪伴.

c++ static containers

3
推荐指数
1
解决办法
2419
查看次数

标签 统计

c++ ×1

containers ×1

design-patterns ×1

java ×1

singleton ×1

static ×1