是否有必要将方法定义为“公共”?

Posted

技术标签:

【中文标题】是否有必要将方法定义为“公共”?【英文标题】:Is it ever necessary to define a method as "public"? 【发布时间】:2011-04-13 02:28:49 【问题描述】:

如果所有方法都是公共的,除非它们被明确定义为其他东西,那么是否有必要将方法定义为public

【问题讨论】:

【参考方案1】:

好吧,您已经通过命名默认值回答了这个问题:不,没有必要。

To quote the manual:

类方法可以定义为公共、私有或受保护的。没有任何显式可见性关键字声明的方法被定义为公共的。

但是,我认为始终这样做是一种很好的做法。

【讨论】:

【参考方案2】:

因为public is the default 没有必要定义它。

【讨论】:

【参考方案3】:

php 中有两种风格倾向——“javaesque”大多数人认为可见性修饰符非常重要并积极使用它们,在 pythonesque 少数人(我个人属于)中,我们认为所有那些 public-private-interface-abstract 的东西都是无非就是浪费内存。

【讨论】:

我很想知道为什么! @stereofrog:你的回答都没有回答孙悟空的问题;实际上,它们本质上是对货物的***崇拜。 “如果python不使用它,它一定不值得”不是答案。 @stereofrog:他们都没有接近回答 sunwukung 的问题。提出一个希望得到答案的问题,并故意声明你将忽略那些不同意你的人,这根本没有价值。像 sunwukung 一样,我很想知道为什么 python 社区认为访问修饰符是不必要的,但是你的答案都没有接近提供这些信息。

以上是关于是否有必要将方法定义为“公共”?的主要内容,如果未能解决你的问题,请参考以下文章

是否有自定义 FxCop 规则可以检测未使用的 PUBLIC 方法?

转: Laravel 自定义公共函数的引入

私有静态方法是不是有必要?

您可以强制从抽象基类继承的类仅具有在基本情况下定义的公共方法吗?

OCUnit的测试用例类中是不是需要在公共接口中定义测试方法

数据抽象