为什么把私有字段和方法在类的顶部?

问题描述 投票:28回答:11

我看到在很多地方这种事实上的标准在许多语言,但我永远无法理解它 - 为什么把你的私人领域和方法在类声明的顶部?比喻来讲,它似乎是私人事情应该在底部(隐藏)和一切公共位于应该是在顶部,这样当你通过类从上到下看你第一眼看到的公共接口,那么内部的工作。

这背后的理由?

编辑:只是为了澄清,我不是指在类的顶部声明所有成员的做法,而是将私有成员/方法在类声明的顶部,任何公众面前的。

class-design
11个回答
22
投票

包括功能和变量 - - 之前,你可以用它们从当你不得不宣布一切的日子茎。

内部(私有)变量和函数就在文件的顶部和外部(公共)功能,在文件的底部去了。这意味着,公共职能可以引用的内部功能。如果你有递归你就必须向前宣布它的配置文件中引用的功能。

当语言允许代码跨越几个文件你不得不把公共函数和变量声明为标题的文件,以便他们可以被包含在该项目中的其他文件 - 或甚至其他项目。


0
投票

因为喜欢,你必须为@ChrisF说语言>>如解释性语言,Python的是一个突出的一个


-2
投票

它不象它是一个秘密,他们在那里。你是不是怕有人会了解内部运作?如果他们有来源,他们可以学习他们需要知道你课堂上的一切。

把他们与其他人可以更容易地开发类。所有类变量都在一个地方,所以是你的方法。


11
投票

它可能来自C的日子里,当所有的变量必须在顶部定义,作为初始化的一部分。此外,默认访问说明符是private,所以以后可以为你节省多余private:在类定义。


9
投票

就个人而言,当我想读别人的代码,并了解它,我喜欢有私营领域提供的上下文。它给我的东西,他们正在做的类型,我可以期望看到一个快速的了解。如果使用得当,它可以给一个很好的预览,就像内容的代码的其余部分的表。


4
投票

我同意,它可能出来的C,但它同时也是一个实用的功能。

在所有的事情,你想在为了学习这样的知识是必需的,比如学习如何学习如何繁殖前添加。

在代码的情况下,你的公共职能一般会引用内部私有的,和你的私人活动不太可能引用公立(虽然有一定的重叠。)所以,了解你所拥有的私有变量和它们用于什么试图了解公共方法与这些变量做的时候是有用的。

以这种方式,也有助于了解您了解哪些呼唤他们的公共方法之前私有方法做什么。

总的来说,我相信它是来自C和早期的语言风格,而是因为它在功能上它是比较有用的,我没有看到在风格切换任何好处。

和以往一样,打破一致性从来都不是一个好主意,除非有一个非常令人信服的理由。


3
投票

有两个原因。

如果他们都是一起在顶部,他们很容易找到,且易于创建一个新的东西,看看是什么命名约定在工作中,什么名称和不可用时检查。

在C语言中,和在JavaScript中,在代码中所有引用必须声明和/或上述被引用其中规定,因为引用的一切都必须是已知的。 (是的,我知道,只有JavaScript的八九不离十。)


3
投票

在OOP-有两件事情 - 数据和行为

私有成员表示数据和公共方法代表的行为。

你可以想想只有在数据的光的行为它代表这么写 - 这就是为什么我想继续我的数据元素在顶部。


2
投票

对于场,这是很常见的,使各领域的私人(封装和所有)。而且他们小。因为他们是小,这是不错的,和可能,把它们放在一起,和一类的顶部是把他们一个不错的,稳定的地方。我不知道这是它的历史理由 - 我认为C语言根源或许可以解释这更好的 - 但它可能是我们让他们有一个原因。

就我个人而言,我倾向于把私有方法的底部,你建议的原因。


1
投票

我认为事实上的标准是公开的方法第一! ATLEAST这是我写我的课的方式。它帮助我艇员选拔的数据结构为我的方法。


0
投票

我想这是习惯。您必须声明函数和变量,然后才能使用它们,所以这是一致的。

在另一方面,它是那么它属于在底部你真的不希望其他人可以读的东西。

© www.soinside.com 2019 - 2024. All rights reserved.