我有一个更普遍的OOP问题。创建一个引用调用/包含类的成员是不是很糟糕的封装?例如:
class Foo
{
void DoSomething()
{
Bar bar = new Bar(this);
}
}
在Bar.cs或Bar.cpp或任何地方
public class Bar
{
private Foo m_myFoo;
public Bar(Foo foo)
: m_myFoo(foo)
{
}
}
我发现自己需要这样做,并且想要知道这一般是否是一种包含不良封装的做法。
答案 0 :(得分:1)
你所做的是dependency injection的一种形式,将Foo注入Bar。我们没有足够的信息来看你打算如何使用它,但它看起来还不错。
而不是Encapsulation,我会更关心两个类之间的耦合。
您可以考虑单独创建两个类并在条形实例上设置foo引用。