2010-07-20 72 views
3

当然,在.java或.cs文件的顶部是package/namespace声明,后跟import/using语句。程序代码体内元素的首选顺序是什么?为什么?

但是让我感到震惊的是我应该在哪里放置变量声明?在顶部还是在底部?

这是我更喜欢的;

package/namespace declaration 
import/using declaration of microsoft's/java namespaces 
import/using declaration of standard 3rd party namespaces 
import/using declaration of my personal namespaces 

constructors 
private methods, each preceded by any private variable that was first used. 
protected methods, each preceded by any private variable that was first used. 
public methods, each preceded by any private variable that was first used. 

inner/nested classes and enums 

private anon classes assignment 
protected variables/anon classes assignment 
public variables/assigned anon classes assignment 

但是我意识到很多人喜欢把package/namespace和import/using声明之后的所有变量放在最上面。这很麻烦,因为有时变量的数量和分配的anon分类会变得太多,并且会掩盖构造函数的可见性 - 我需要看到的第一行是构造函数,因为它们告诉我实例化的签名。

然后,对于立即分配给变量的匿名类 - 我认为它们是“变量结构”的一部分,所以我将它们分组为变量。

我系统化了我的代码元素的位置,使我能够轻松找到它们。

+0

对不起,请重新阅读此问题。我的Chrome浏览器出现问题,导致我的问题减半。 – 2010-07-20 19:21:35

+2

这是一个有趣的想法。由于一个类的属性和私有成员通常是这个类中最不感兴趣的部分,我通常会跳过它们来找到需要修复或扩展的方法中的问题。把它们推到最底部是有道理的。我可能需要试一试,看看我是否喜欢它。 – 2010-07-20 19:24:34

回答

1

Java标准规定您的声明从私人到公共。我发现这对我非常有帮助。我不知道为什么,但是自下而上读取代码对我来说真的很好。所以,我已经通过了到C#(我的主要语言),我订购一类作为

using statements 
namespace 
private static fields 
private static methods/properties 
public static methods/properties 
private fields 
private methods/properties 
protected methods/properties 
public methods/properties 

我不给构造自己的部分像大多数人一样,不同之处在于他们是第一个进入他们的类别(例如,公共构造函数就在受保护的方法之后)。我几乎从不使用内部范围的东西,除了整个类。

我从来没有使用的区域,我从来没有使用公共领域(总是属性)

+0

我喜欢使用地区。 – 2010-07-20 19:57:16

1

我倾向于以同样的顺序,我会用他们的东西。命名空间,然后是using声明,然后是构造函数,然后是嵌套类,然后是参数,公共方法,最后是私有方法。基本上,它是按照我的代码的新人应该阅读的顺序读取的,以获得关于该类的广度优先的概念。这也是为了如何使用它们。首先你需要知道命名空间,然后如何构建,然后如何配置,然后如何使用。

除此之外,私有成员变量总是在使用它们的地方。如果我有一个私人帮手方法,我尝试将它放在相应的公共方法旁边,并将它们聚集在一个#region中。但通常任何私人成员都会接近底部,因为我觉得使用这个班的人需要比公开成员更少地阅读他们。

我认为这也取决于您是否正在编写其他人将阅读的代码与编写只有您正在维护的代码。当它是后者时,我倾向于将更“困难”的东西靠近顶部,因为我知道这些东西我可能会修复错误。