静态变量vs参数传递

时间:2012-01-24 23:59:07

标签: architecture static structure argument-passing

对不起,不能将此标记为正确的标题。 我想知道静态字段与参数之间的好处是什么,在它到达目的地之前一直持续传递。

示例:

Xna在他们的框架中使用GameTime,并在更新函数

中传递给子函数
protected override void Update(GameTime gameTime)
    {
        base.Update(gameTime);
        world.Update(gameTime);
    }

    //in World class
    public void Update(GameTime gametime)
    {
        //draw all game objects
        for (int i = 0; i < entities.Count; i++)
        {
            entities[i].Update(gametime);
        }
    }

这样做有什么好处,而不是在某处保留一个静态变量游戏时间,在其他任何东西之前在根类中更新它,并从子类中访问该静态变量。

我总是看到在库中使用的参数传递。但是在某处静止它似乎更“方便”。

2 个答案:

答案 0 :(得分:0)

此静态字段与类的所有实例共享。静态和可变性提供危险的混合物,除非它被仔细控制。你不希望任何人伸出手触摸那个领域,除非所有实例都需要改变是必要的。

答案 1 :(得分:0)

注入参数时,可以更轻松地测试您的方法。例如,你可以有一个假的GameTime对象,你可以传入它以模拟它的行为。