【Android】UI組件變數組織

來源:互聯網
上載者:User

標籤:

說明 這不是一篇技術文章,而是因為最近項目新來了幾個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都不用修改定義的。

第二步:變數名

變數命名可能有下面幾種:

1.

    ImageButton vImageButton1

這種命名只應該出現在教程代碼中,項目代碼中是絕對不應該出現的

2.

    ImageButton vQueryImageButton(或者vQueryBtn)

這個命名其實可以接受,但是一個問題就是,變數名涉及到具體的組件類型,參照上面第一步的說明,如果並不會使用到“ImageButton”特定的方法,就沒有必要過於具體化一個變數。

3.

    ImageButton vSearch

這個命名其實也可以接受,而且也比較適用。

4.

    ImageButton vSearchAction

相比上面的vSearch,個人還是比較偏向於這種命名。
雖然都是純粹的意圖相關,但一個問題就是完成某個意圖可能需要幾個組件配合,比如對於搜尋來說,一般還會有一個輸入框,這時候就可以將輸入框命名為vSearchContent,這樣可以使用尾碼“Action”和“Content”將兩個部分區分開來

XML內部組件id命名

xml檔案中的id命名也是一樣,需要提供給java檔案使用的盡量意圖導線。
比如RelativeLayout命名中沒有必要含有完整的“RelativeLayout”欄位,因為實際項目中,需要調用RelativeLayout特定方法的情況基本沒有。所以使用container等更泛的名字也可以。

至於只在布局檔案中用來進行定位或者錨點的組件,可以將id命名得更明顯一下,比如使用local,anchor之類名字,以便告訴java代碼不應該隨意擷取這些組件,因為這些id並非穩定欄位。

Android分享 Q群:315658668

【Android】UI組件變數組織

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.