作者popcorny (毕业了..@@")
看板java
标题Re: [问题] Java Intropection的代价是否很贵?
时间Thu Jan 23 09:10:33 2014
※ 引述《dream1124 (全新开始)》之铭言:
: 会问这个问题,是因为好像曾经听过这类说法
: 再加上最近看过 apache BeanUtils 的原始码以後,
: 发觉原来就算只是物件的属性盖来盖去也可以这麽复杂....
: 既是查找,然後定义再比对,最後还要快取
: 密密麻麻程式码让我不知如何下手... 其实我想解决的问题不复杂啊~ Orz
: 现在很流行让属性的 setter 有回传值,然後型态设定为物件自己,
: 接着理所当然在设定完属性後回传自己,方便使用者连续呼叫 setter 设定属性。
: 只是公司多年长期维护下来的案子已经很旧了
: 里面依赖的 struts1 , apache BeanUtils 2.1, 都不觉得这种 setter 是合理的,
: 让我想把物件的 setter 回传自己的构想很难实行....
: 因此有自行实现 BeanUtils 工具的想法
: 只是看到 BeanUtils 的原码令我有些却步,
: 想请问有什麽方法可以解决像这样的需求呢?
: 不管是开发新工具还是改旧的工具,请问大家会怎麽做呢?
还是要用javabean标准的setter/getter吧...
fluent interface不是标准javabean..
不建议修改你原专案这边的code
如果你想用fluent interface
我建议包成builder pattern (这就很常见用fluent interface)
假设你有一个Car的javabean..
中间有些Wheel啊..Handler啊..什麽的要产生
我会用
Car car = new CarBuilder()
.setMaxSpeed()
.createWheels(xxx)
.createHandler(xxx)
.build();
但是Car, Wheel, Handler里面都还是会用javabean的方式来做setter/getter
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.163.46.230
1F:推 dream1124:好方法! 谢谢你! 01/23 22:30
2F:→ qrtt1:不就是上一篇 wiki 写的方法吗?可见原 po 没看参考资料... 01/24 00:48
3F:→ dream1124:不好意思, 没有仔细看 wiki 参考资料 01/24 00:53