Re: [問題] 要如何使用 enum 代替陣列的下標
其實我本來不想回的 [被毆飛]
※ 引述《AnyaAlstreim (Mordred)》之銘言:
: 大家好,我是 Java 新手。
: 我在寫 Android 專案時遇到一種情況:
: 如果有五個按鈕,內容分別為以下
: 【 精華公佈欄 】
: 【 我 的 最愛 】
: 【 分組討論區 】
: 【 私人信件區 】
: 【 休閒聊天區 】
: 然後 code 這樣寫
: Button[] button = new Button [5];
: button[0] = ...;
: button[1] = ...;
: ...
: button[4] = ...;
: 這時候會有可讀性和易維護性的問題,例如想在最開頭加上一個新的按鈕
: 【 個人設定區 】
: 那後面的 button 下標就要全部往後移了。
這個算插花外提
其實我不懂為什麼會有這個問題
我不知道 Android 的 Button 有沒有什麼特別
我是用 GWT(Swing 應該也差不多)的 Button 來舉例
那麼,我會...
String[] btnLabel = {"個人設定區", "我的最愛"};
Button[] button = new Button[btnLabel.length];
for (int i = 0; i < btnLabel.length; i++) {
button[i] = new Button(btnLabel[i]);
}
不考慮 UI / UX 等等三小排版問題
易維護性應該不是問題?
可讀性... 先跳過,後頭再說
剩下的問題就在於... 什麼時候你會需要知道 button 的 index?
至少在你提出來的這個部份,我看不出來
然後那個可能岔題岔更遠了......
: 之後就可以使用
: button[ANNOUNCE]
: 來取代 index
: 推 cyberwizard:可讀性看寫法而定 http://goo.gl/KjyhxE 12/06 04:32
: → danny8376:每個button各自有變數名不行嗎? 12/06 06:15
: → AnyaAlstreim:樓上,可以。 12/06 10:42
: → AnyaAlstreim:我也沒有寫 Android 經驗,這樣寫不好嗎? 12/06 10:46
: 推 PsMonkey:扯到可讀性,基本上就跟平台沒關係了 Zzzz 12/06 11:26
: → AnyaAlstreim:樓上..... http://goo.gl/Q7AagW 12/06 12:10
你拿 Linux kernel coding style 出來
其實我有點(根本就)不明所以
主要的原因,底下 danny8376 大人說的差不多了,我就跳過
我回應你的是「沒有寫 Android 經驗」這句
(這再次說明了推文沒辦法好好討論 [被毆飛])
當然,如果你覺得你的問題真的 dependent on Android
那依照版規,我建議你出門左轉到 AndroidDev 版
當然,我完全不覺得這個問題不能在 Java 版討論
就如同我推文說的(然後延伸一下)
單純論「可讀性」這玩意
那跟 Android / Java 甚至 C 一點關係也沒有
因為那純粹是「人」的問題
這樣說好了,對電腦 / compiler 而言,有可讀性的問題嗎?
沒有,只有 compile 過不過、以及效率的問題
所以,可讀性好不好,是「人」判斷的
既然是人判斷,除了客觀因素(各種 coding style 可稱為客觀因素)
可能絕大多數都是主觀因素
(錢鍾書:所有的客觀都是偽裝巧妙的主觀)
你說三元運算好不好讀?
String message = errorFlag ? "失敗" : "成功";
String message;
if (errorFlag) {
message = "失敗";
} else {
message = "成功";
}
//這個 case 可能大多數人都會選三元運算
//可是臨時我懶得想太複雜的例子 [逃]
我以前一直很排斥這玩意
但在被前一家公司的 code 訓練(X)摧殘(O) 過之後
其實自己也常常忍不住用三元運算
但是我的極限只有一層,可是有些人會寫到兩層 or 三層 [抖]
另外一個簡單的反向例子是命名原則
我現在完全不能接受 camel 以外的方式
像這種
json_decode();
我會覺得 x 你 o 的,為什麼不能
Json.decode(); //等等這是物件寫法吧?
不然這樣也爽
jsonDecode();
但是,對很多人而言,用 _ 代替空格
在視覺上反而比較好讀
所以,至少對我個人而言
可讀性這種東西都是習慣問題
或許跟語言特性(尤其是提供的 syntax sugar)有關
但是,整體來說,就是看的人爽不爽的問題
這就好像貧乳跟巨乳... (謎之聲:你又想決鬥了嗎? [指])
說不定你的 partner 在一陣子的視覺強姦之後
也會習慣 Java enum 的寫法?
(當然還是得強調,我覺得這個問題很好,值得思考 [蓋章])
之前 soft_job 版好像也有討論過類似的話題
那時候 yoco 大人的回應還有人轉到 G+ 上
你也可以參考參考
: → danny8376:原PO 那是大型Project 所以有自己整個的習慣 12/06 12:38
: → danny8376:至於獨立變數怎看都和你需求啊... 12/06 12:40
: → danny8376:除非需要foreach所有button 不然用Array本身可讀性... 12/06 12:41
--
錢鍾書: 說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.232.227
推
12/06 13:55, , 1F
12/06 13:55, 1F
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章