作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] 要如何使用 enum 代替阵列的下标
时间Fri Dec 6 13:23:41 2013
其实我本来不想回的 [被殴飞]
※ 引述《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
1F:推 danny8376:版大出没! 12/06 13:55