【发布时间】:2012-05-19 02:28:55
【问题描述】:
在 ruby 中,有没有办法定义一个方法,该方法对文件(或模块)中的每个类都可见,但对需要该文件的文件不可见?
相关,但不完全相同:我们能否重新定义一个方法(例如标准库类中的一个方法),使得该重新定义仅在当前文件中可见?所有其他文件应查看原始定义。
【问题讨论】:
-
只是想知道为什么需要它?它在任何情况下真的有用吗?
-
嗯,封装总是一件好事。如果您正在编写一个库,您不希望用户开始弄乱内部结构。尽管如此,让其他实现类使用您的私有方法可能会很有用。在 C++ 中,您有朋友类来执行此操作,在 Java 中,默认可见性是“包保护”。至于重新定义,我主要是想避免命名空间冲突。我可能想在库类中添加一些功能,但如果每个人和他们的朋友都在自己的库中这样做,就会出现混乱。
标签: ruby visibility