我记得(几乎没有)在 C++ 中,您可以创建能够访问您的私有成员的友元类或方法。坦率地说,我从来没有发现这个功能特别有用。
现在我正在使用 Ruby 作为游戏开发框架。我正在制作一个简单的节点系统(一个节点可以包含其他子节点,并且有一个父节点)。
我的Node
班有#add_child(child)
. 问题是,当A
node 获得子B
节点时,我需要将B
' 的@parent
引用设置为指向A
. 所以在里面#add_child(child)
我有这个电话:
child.set_parent(self)
现在B
的@parent
变量指向A
. 这很好用。
但是,#set_parent(parent)
仅用于此特定场景。它只能在被调用时#add_child(child)
被调用。如果我#set_parent(parent)
断章取义,节点系统可能会中断。
现在我确实发现类/方法友谊的东西很有用。如果我只能使#set_parent(parent)
by 可用#add_child(child)
,那么如果某个随机程序员决定自己调用,我的系统就不会崩溃#set_parent(parent)
。
从一些搜索来看,Ruby 似乎并没有明确地具有此功能。
Ruby 是否像 C++ 一样提供类/方法友谊特性?如果没有,我还能如何解决所描述的问题?