作者cyclone350 (老子我最神)
看板java
标题Re: [战] getter / setter
时间Wed Mar 12 20:56:09 2014
先举一个例子,虽然猴大已经举过了
有一个 class Person
对应 method 如下
void setName(String name);
void setName(String name, Locale locale);
String getName();
String getName(Locale locale);
我们可以用如以下方式使用
//从资源库取一个Person instance
Person person = Repository.create(Person.class);
person.setName("myNameByDefault");
person.setName("myNameByEnglish",Locale.UK);
//把Person存取到持久层
Repository.save(person);
从以上来例子看...我们知道一个 Person 有名字,而且可以有多个语系的名字
如果我们把 getter/setter 拿掉,所有使用Person这个class的人,都需要知道
这个class里面复杂的架构... 但是这是不必要的,我们只要知道,Person有Name
而且是多国语系,这样就好了。
这应该是 Java 语言本身就很强调的... 抽象化的概念?
当然,如果一个class只是个data structure (或称作简单的Java bean?),
且class里面的每一个member都必须是可以被外部class可以access的,
我也觉得 getter/setter 在这种情况是多余的
(这种情况意指这个class并没有做任何商业逻辑)
: → Lordaeron:我已经说过, 我看过的PROJECT 都是一堆get/set 03/12 16:04
: → Lordaeron:请问@f先生还要问什麽呢?CODE 又不止我写的,有问题? 03/12 16:06
: → Lordaeron:而我往往只负责收尾,只是看到一堆GET/SET很好笑. 03/12 16:08
L大所述 "只会一直无意义get/set很XX",
L大说法换个说法应该是说 "只会无脑写程式的人很XX"
这种说法有点吊诡... 我们假设世界上真的有无脑的工程师
既然他们不会动脑,那他们职位可能就是猴大所述的"工人"
既然不会动脑,那何来getter/setter呢?
想必是照着leader开出的规格写的
所以如果真的是XX,那应该也是上面的人XX,而不是这群工人XX吧?
就好像设盖房子一开始设计图就画错了,结果却怪罪底下的工人乱做一通一样...
我们是软体工程师 (好啦也许只有我是...)
我们可以根据不同的情况找出不同的解法
既然在某些请况真的不适合使用 getter/setter
那可以跟当初的定规则的人讨论,提出看法或解法
而不是在那边说 "很可笑,很白X",不是吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.193.201.124
1F:推 Expsun:推最後一段 03/12 22:29
2F:推 kewang:让我想到最近有篇文章,show me the code,git pk XDDD 03/13 00:09
3F:→ Lordaeron:照版工的讲法,工人都能为PROJECT贡献. 03/13 00:10
5F:推 plover:bitbucket也不错呀 XD 03/13 02:27
6F:→ Lordaeron:很好笑,等你做过案子再来说吧, 特别是大案子. 03/13 12:24
7F:→ jej:不是到annotation getter/setter就还有其他用途了?? 03/13 12:25
8F:→ jej:东西脑不脑包 看个人体质而定 不是向来都是这样吗? 03/13 12:26
9F:→ Lordaeron:证:台湾盖的高速公司问题一堆,难道是做的人不知? 03/13 12:26
10F:→ Lordaeron:高速路, SORRY 打错字 03/13 12:28
11F:→ Lordaeron:唉, "高铁" 问题不是一开始就知的吗? 03/13 12:29
12F:→ cyclone350:我不懂...为什麽提出看法要做过大案子? 03/13 13:16
13F:→ cyclone350:况且做过大案子的人反对L大论点的也不在少数吧? 03/13 13:19
14F:→ Lordaeron:我给出顺证了,等你给反证,大案子可以由你来提出决的. 03/13 13:43
15F:→ Lordaeron:等你的反证,谢谢. 03/13 13:46
16F:→ tails32100:所以大案子的get/set都写的很好笑吗?纯属好奇问问O.O/ 03/13 13:53
17F:→ tails32100:蛮想知道好笑的get/set长什麽样,想避免写出蠢code 03/13 13:55
18F:→ Lordaeron:看过坏的 = 知道好的,二元脑袋,不适合写程式. 03/13 14:17
19F:→ tails32100:可以举例什麽是坏的吗?为什麽是坏的? 03/13 14:18
20F:→ cyclone350:额... 你提出了什麽顺证... 我要反证什麽东西 = =? 03/13 14:19
21F:→ Lordaeron:"高铁" 问题不是一开始就知的? 结果有没有改正? 03/13 14:27
22F:推 lovelycateye:在下 PsMonkey 咱 getter-setter master branch 单挑 03/13 14:28
23F:→ Lordaeron:你不是伟大的软体工程师,可以提出看法或解法,去改变的? 03/13 14:29
24F:→ Lordaeron:所以我举高铁当顺证,请你举反证. 03/13 14:31
25F:→ Lordaeron:不管什麽案子,只要是工程的,够大的,都可以. 03/13 14:35
26F:→ rock1985:这跟高铁例子有什麽关系? 可以直接发一篇文说明吗? 03/13 14:51
27F:→ tails32100:小弟是来学JAVA的 不是来学怎麽证明的啊!! 03/13 14:53
28F:→ Lordaeron:学JAVA去请教版工,我在问cyclone350,不相关的人不必回. 03/13 14:55
29F:推 tails32100:L大 小弟在问你什麽是坏掉的get/set 你也没回我啊 03/13 14:58
30F:推 PsMonkey:回楼上,我已经放弃了,基本上 L 先生只想说嘴不想论证 03/13 14:59
31F:→ tails32100:我是真的想学啊 Orz.... 到底什麽是坏掉的get/set 03/13 14:59
32F:→ Lordaeron:版工,我问你的你没回我,还说我不论证? 03/13 15:00
33F:推 PsMonkey:你的问题 or 论点别人一定得回,别人的问题跟论点就无视 03/13 15:20
34F:→ PsMonkey:这叫做哪门子讨论 03/13 15:20
35F:→ Lordaeron:哇,你回我的哪一篇,我点点都回了,不会吧,你看不到? 03/13 15:37
36F:→ Lordaeron:是你用一句回我说了算的呢, 版工先生. 我可诚意的回你呢 03/13 15:51