在C#和“内部”中类或方法只能从它所在的程序集中调用...我知道Ruby没有“程序集”。或者像他们一样的任何真实的包(除了宝石,但它们根本不是真的相同),但我想知道是否有办法限制可以调用方法的位置,类似于内部?

我正在更新一个小框架,并创建了一个包含3个方法的类。我希望能够仅从我的框架中调用3种方法中的2种,并从任何地方调用第3种方法。红宝石有可能吗?或者我是否会犯这个错误,应该创建两个单独的类?还是?

有帮助吗?

解决方案

不幸的是,Ruby是一种在封装方面非常缺乏的语言。它的容量非常有限,所以不,没有任何东西等同于C#internal关键字。也许在你的情况下,两个单独的类会更好,但是一个明确的文档字符串或一个特殊的命名方案可以做同样的事情而不需要大量修改。

此外,您必须注意,internal关键字只不过是图书馆开发人员的便利。它并没有真正阻止某人使用标记为内部的方法或类,有办法通过代码注入,AOP等来规避这些保护。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top