为了让我的问题更好理解,这里有一些代码:
getParentUnit()
现在我希望我的string myClass::getParentUnit(){
retrun parent.getUnit();
}
做类似
myClass
我知道我可以修改this
以在构造函数中使用parent
class a{
<...>
b B;
<...>
}
class b{
<...>
c C;
}
class c{
<...>
d D;
<...>
}
指针并将其保存以供日后使用,但我在彼此“内部”有几个类,如:< / p>
d
并在课程a
中我需要访问班级.post(function(req,res){
models.Item.create({
title : req.body.title,
UserId : req.body.UserId
}).then(function(item){
res.json({
"Message" : "Created item.",
"Item" : item
});
});
});
中的内容。
因此,如果有更好的方法,我不想改变所有内容以获得向后引用。
问候 NIoSaT
答案 0 :(得分:1)
这是一个常见问题:有一个应用程序(对应于类children
的对象),然后较低抽象级别的对象需要访问应用程序上下文(adjustPan
的成员)
人们常常应用全局变量的简单但高度成问题的解决方案,使整个应用程序代码可以访问a
。请注意:这意味着a
不可测试,因为您必须设置整个应用程序才能使a
正常运行。如果依赖项不影响d
的行为,但只添加边缘副作用(如记录器),那么它可能是可以接受的,因为您仍然可以在没有记录器的情况下测试d
的行为。 / p>
执行此操作的简洁方法是让每个对象在构造函数或setter函数中显式获取其依赖项。这需要更多的工作,但它创建了可维护的代码,因为每个类的API明确说明了依赖关系。此外,现在每个班级都可以独立测试。
d
我建议您观看https://www.youtube.com/watch?v=RlfLCWKxHJ0,其解释非常好。