大多数博客、教程或书籍在任何类/模块的底部都有私有方法。这是最佳实践吗?
我发现在必要的时候使用私有方法更方便。例如:
public
def my_method
# do something
minion_method
end
private
def minion_method
# do something
end
public
def next_method
end
这样,我发现代码的可读性更好,而不是不断地上下滚动,这非常令人恼火。
这种方法有什么严重的错误吗?在底层使用私有方法不只是一种最佳实践吗?
发布于 2012-05-24 01:32:13
在我看来,最好的做法是按顺序声明你的方法,而不是保持私密的观点。
最后,只需添加:private :xmethod
,就可以使任何方法成为私有方法
示例:
class Example
def xmethod
end
def ymethod
end
def zmethod
end
private :xmethod, :zmethod
end
这能证明你的问题是正确的吗?
发布于 2014-06-21 03:11:41
从Ruby2.1开始,还可以选择将private
添加到方法定义中。
class Example
def xmethod
end
private def ymethod
end
private_class_method def self.zmethod
end
end
您可以立即看到一个方法是否是私有的,无论它在(大)文件中的什么位置。它与许多其他语言都是一致的。但它的打字量更大,不能很好地对齐。
发布于 2012-05-24 00:46:37
正如其他人已经指出的那样,约定是将私有方法放在底部,放在一个私有类下。然而,您可能还应该知道,许多程序员为此使用双缩进(4个空格而不是2个)方法。原因是,通常情况下,您不会在文本编辑器中看到“私有”,并认为它们可能是公共的。如下图所示:
class FooBar
def some_public_method
end
def another_public_method
end
private
def some_private_method
end
def another_private method
end
end
此方法应避免您必须上下滚动,并将使其他程序员在您的代码中更舒适。
https://stackoverflow.com/questions/10724221
复制相似问题