我有两个问题
Best-Practice
- 我有一个算法,它使用公共接口对数据结构执行一些操作
- 它目前是一个包含许多静态方法的模块,除了一个公共接口方法之外,所有方法都是私有的。
- 有一个实例变量需要所有方法共享。
这些是我能看到的选择,哪一个是最好的:
- Module 使用 static (Ruby 中的‘ Module’)方法
- 使用静态方法创建 类
- Mixin 模块用于包含到数据结构中
- Refactor out the part of the algorithm that modifies that data structure (very small) and make that a mixin that calls the static methods of the algorithm module
技术部分
有没有办法做一个 私有模块方法私有模块方法?
module Thing
def self.pub; puts "Public method"; end
private
def self.priv; puts "Private method"; end
end
里面的 private
似乎没有什么效果,我还可以调用 Thing.priv
没有问题。