作者PsMonkey (痞子军团团长)
看板java
标题Re: [战] getter / setter
时间Wed Mar 12 10:07:42 2014
※ 引述《Lordaeron (Terry)》之铭言:
: 版工, 国外10 年前就吵得很热了, 怎麽现在来战?
说的悲哀一点,我还真不知道这个版这十年以来
有哪个(技术讨论)的 thread 在国外没有吵过的
再者,这话头明明是你摆出起手式的
在推文中战跟开一个 thread 战,我不知道有什麽不同
请不要自相矛盾
: 支持者的说法不外:
: 1. 这两个方法可以方便增加额外功能(比如验证)。
: 2. 内部存储和外部表现不同。
: 3. 可以保持外部接口不变的情况下,修改内部存储方式和逻辑。
: 4. 任意管理变量的生命周期和内存存储方式。
: 5. 提供一个debug接口。
: 6. 能够和模拟对象、序列化乃至WPF库等融合。
: 7. 允许继承者改变语义。
: 8. 可以将getter、setter用於lambda表达式。(大概即作为一个函数,参与函数传递和运算)
: 9. getter和setter可以有不同的访问级别。
: 但看上面的说法: 咦, 你的物件有以上的需要呼?
: 在伟大的JAVA案子中, 9 成以上, 不就是BEAN? 这不就是"简单" 的取值设值而已.
: 这要不要算是过度使用呢?
: 引一篇 http://www.importnew.com/9716.html
: 有兴趣的人可以去看看.
: 致於谁要信服什麽, 倒不必了, 这宗教式的OOP,
: 因为还有人, PERL, PHP, 甚致C++ 都要getter/setter一下的.
你觉得骑机车简不简单呢? 我觉得挺简单的
你觉得开车要不出事简不简单呢? 我觉得挺简单的
那麽为什麽骑机车要带安全帽,不然罚 500
那麽为什麽开车要绑安全带,不然罚 1200
这可能扯太远了,不然就说变数
private void foo() {
for (int i = 0; i < 10; i++) {
//something
}
for (int i = 0; i < 10; i++) {
//something
}
}
对於两个 i,也不过就是简单的存值取值而已
那为什麽我不能写成
int i;
private void foo() {
for (i = 0; i < 10; i++) {
//something
}
for (i = 0; i < 10; i++) {
//something
}
}
goto 对某些人而言也蛮简单的,所以应该要可以用 goto
变数名称其实也不重要,浪费时间取好名字,过度使用
a1, a2, a3 依序用下去就可以了
(反正混淆器下去之後还不都一样)
废话,这些当然都可以
就如同你要把自己写的 class 的 package 弄成 java.lang
compile 不会出错,你想怎样都码可以
我不否认 Java 很多时候的思维是依循「最大公因数」
也就是用一般凡人都可以顺利写程式的、也不太容易出错的
而不是想要去提供超~方便的 feature
所以大抵上每个人写出来的 code 会差不多
因为能变得花样也不多
简单地说,Java 的思维就是让程式设计「工人」也可以对 project 有贡献
而不用都是一群优秀的程式设计师
就像盖房子不用土木工程师来实做,道理一样
OO 基本上也是有这种思维的调调
封装继承多型,就是把程式码拟物化
可以贴近(一般)人的思维
看看很多讨论 / 教学 OO 的范例码
都可以写出很生活化(也很爆笑)的范例
或着说,至少有一半以上的技术,都是这种思维
你要把他当优点还是缺点,这就随人高兴
端看你要用个人的角度、还是软体工程/project 的角度
「本大爷一个人可以 hold 住 Tomcat 等级的 project」
那哪怕你要用自己发明的语言,也不会怎麽样
也许你实际要说的是「OO 的设计很白痴」
所以连其他要 OO 化的语言也都打翻
getter / setter 只是第一线的代罪羔羊
只能说,你在宣扬「getter / setter 还顶白痴」时
连同这篇也看不出什麽有效的论点
甚至可以说「因为还有人无论什麽情况下都不要 getter/setter 一下」
难道就不是你所谓的「宗教式的反 getter/setter」
请不要自相矛盾
========
话说,连我这种程度,上头的 2, 3, 9 都基本上必备
更不用说那该死的 GWT AutoBean.....
--
钱锺书:
说出来的话
http://www.psmonkey.org
比不上不说出来的话
Java 版 cookcomic 版
只影射着说不出来的话
and more......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.129.138.221
1F:推 jackypan1989:针对 int i 的部份 在 js 是先宣告是恰当的写法 03/13 15:53
2F:→ danny8376:这是JAVA啊 而且JS主要是因为变数范围是以func为准啊 03/13 17:37