【问题标题】:Naming an objects "instantiator" object命名对象“实例化器”对象
【发布时间】:2018-09-29 12:16:40
【问题描述】:

抱歉,我脑子有问题,甚至不知道如何正确表达这个问题。 试图弄清楚我将如何引用我的主题被实例化的对象 例如:

class Foo
{
    private Bar m_bar;

    public void InstantiateMyBar()
    {
        m_bar = new Bar();
    }
}

Foo fooObj = new Foo();
foo.InstantiateMyBar();

print("A *Bar* object was instantiated in *fooObj*.");
print("*fooObj* is that *Bar* object's ... ?");

我更喜欢寻找像“父对象”这样简短而简单的东西,但我想这可能会导致与继承混淆。

【问题讨论】:

  • 在您的团队/小组中命名不会更符合惯例。认为将其称为创建者或构建器对象可能同样好。
  • 所有者、容器、父级,你怎么称呼它并不重要。
  • 谢谢,这些都是很好的建议。我只想到了所有者和父母,不确定我是否对他们中的任何一个感到满意。

标签: c# naming-conventions naming


【解决方案1】:

Foo 有一个Bar 类型的字段,但反之则不然。 Bar 没有关于它在哪个对象中实例化的信息。您可以将Parent 属性添加到Bar 并将其分配给Foo,然后您将有两种方式的引用。

public void InstantiateMyBar()
{
    m_bar = new Bar { Parent = this };
}

【讨论】:

  • 谢谢。问题真的只是在通信中如何调用或引用它,所以在某种意义上命名,虽然我这里不是试图命名一个变量。比如我讲一个基类,马上就很清楚了我在说什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-12
  • 1970-01-01
  • 1970-01-01
  • 2013-03-29
  • 1970-01-01
相关资源
最近更新 更多