【Android】UI组件变量组织

#说明

###这不是一篇技术文章,而是因为最近项目新来了几个android新人,所以我琢磨在代码风格上进行一下统一,所以有了以下以及后面的几篇文章。

##java文件内部UI组件变量组织

###UI组件使用小写字母“v”作为前缀。

v主要表示“View”,android源码中,变量前缀主要是“m”,但是个人觉得对于UI变量,还是用“v”比较清晰

###意图导向,最小化抽象

UI变量的“声明类型”应该是能够实现意图的最小化抽象类型,变量名需要能表现出一个组件的功能。

比如,交互需求有一个ImageButton,点击之后的动作是触发一个搜索请求。应该怎么组织变量呢?

####第一步:声明类型

声明这个变量大概有几种方式:

1. private ImageButton varName;
2. private ImageView varName;
3. private View varName;

这些声明都没有什么问题,问题是如果这个按钮只是单纯的触发一个点击事件, 那么也就表明我们的意图只需要使用View级别就行,因为View.setOnClickListener(OnClickListener)是我们唯一关心的功能,所以只需要将类型限定在View级别就行。

另外,UI是一个变化频度比较高的部分,越抽象就越容易修改。 换句话说,就是“面向接口编程”,View在这里就充当了接口的角色,这样,不管以后我们把ImageButton换成ImageView,Button或者TextView都不用修改定义的。

####第二步:变量名

变量命名可能有下面几种:

    ImageButton vImageButton1

这种命名只应该出现在教程代码中,项目代码中是绝对不应该出现的

    ImageButton vSearchImageButton(或者vQueryBtn)

这个命名其实可以接受,但是一个问题就是,变量名涉及到具体的组件类型,参照上面第一步的说明,如果并不会使用到“ImageButton”特定的方法,就没有必要过于具体化一个变量。

    ImageButton vSearch

这个命名其实也可以接受,而且也比较适用。

    ImageButton vSearchAction

相比上面的vSearch,个人还是比较偏向于这种命名。 虽然都是纯粹的意图相关,但一个问题就是完成某个意图可能需要几个组件配合,比如对于搜索来说,一般还会有一个输入框,这时候就可以将输入框命名为vSearchContent,这样可以使用后缀“Action”和“Content”将两个部分区分开来

##XML内部组件id命名

xml文件中的id命名也是一样,需要提供给java文件使用的尽量意图导线。 比如RelativeLayout命名中没有必要含有完整的“RelativeLayout”字段,因为实际项目中,需要调用RelativeLayout特定方法的情况基本没有。所以使用container等更泛的名字也可以。

至于只在布局文件中用来进行定位或者锚点的组件,可以将id命名得更明显一下,比如使用local,anchor之类名字,以便告诉java代码不应该随意获取这些组件,因为这些id并非稳定字段。

#####Android分享 Q群:315658668

转载于:https://my.oschina.net/xesam/blog/398947

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值