Android小部件的命名约定

时间:2016-10-23 11:06:21

标签: java android android-studio naming-conventions

我认为来自Google的官方code style guidelines非常有帮助,但它们不包含视图元素的命名约定。

让我们说一下简单的Activity包含一个ImageView,一个TextView和Button。代码看起来像这样:

class SimpleActivity extends Activity {

     private ImageView mImageView;
     private TextView mTextView;
     private Button mButton;
}

当然,我们不会为小部件提供这样的名称,因为它们不具有描述性。我们应该知道这个小部件的功能。因此,让我们想象ImageView代表用户个人资料图片,TextView代表用户名,Button代表继续按钮。

我会将可能的命名约定分为三类:

1

class SimpleActivity extends Activity {

     private ImageView mUserProfileImageView;
     private TextView mUsernameTextView;
     private Button mContinueButton;
}

第一个约定的最大优点是,在代码中使用成员时,我们知道这是TextView,我们可以使用" setText()"方法,例如。不幸的名字很长,因为懒惰的程序员是优秀的程序员,这是它的缺点。

2

class SimpleActivity extends Activity {

     private ImageView mUserProfileImage;
     private TextView mUsernameText;
     private Button mContinueButton;
}

这里我们有混合约定,我们仍然知道在代码中使用某个地方时它是什么类型的小部件,但是当我们有更复杂的小部件功能时,这些名称仍然太长了?

3。

class SimpleActivity extends Activity {

     private ImageView mUserProfile;
     private TextView mUsername;
     private Button mContinue;
}

最懒的类别。

问题

您在代码中使用哪些命名约定以及您的体验是什么?也许有更好的约定,我没有提到?谷歌正在使用什么样的惯例?

1 个答案:

答案 0 :(得分:4)

首先,' m'前缀用于AOSP源代码。 它不打算在Android应用中用作对话,因此我建议您将其删除(您可以阅读更多here)。

你的第三个选择是第一个消除;例如,mContinue可以很容易地成为一个布尔变量,表示是否继续做某事,所以它绝对不是很可读。

在第一个选项和第二个选项之间,我仍然会选择第一个选项,因为它的可读性更高,而且作为OOP的一般规则,可读性比短名称更重要。此外,如果您移动视图'对其他类的自定义和数据绑定方法,您将在活动代码中拥有最少量的引用。