`
deeplives
  • 浏览: 1848 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

大家觉得java me 需要 ioc 吗?

阅读更多
我本来一直从事 java ee 开发,但最近公司要我接手 java me 和symbian 平台的项目。由于我一直都非常喜欢使用spring的ioc ,所以现在在缺少ioc 容器的情况下做 me 或者 symbian 开发的时候非常不习惯。我上网查了一下,发现手机 ioc 容器 的介绍非常少,只查到一个名叫 signal 的ioc框架(spring 的 java me 移植版)。

是不是由于性能的原因导致java me 平台不需要 ioc 框架呢?
从java ee 到 me 和其他手机开发平台, 我应该如何改变开发思路呢?
分享到:
评论
26 楼 luzl 2009-10-14  
lordhong 写道
移动编程性能最重要, 所以interface,接口之类的能少就少, 连factory这些可以不要的都不要.  只要你明确知道需要用到的类, 就直接写出来, 比如:
Map<String, String> map = new HashMap<String, String>();
就直接写成HashMap<String, String> map = new HashMap<String, String>();

更有甚者, 直接用public的property, 跳过getter和setter, 少几个method stack的pop/push

如果可以用static的话, 立马上static ;)
IOC是用相同的接口, 方便替换不同的实现.  移动编程目前还不需要这些

  
25 楼 chandler 2009-10-11  
hepeng421 写道
得,以前搞j2ee的臭习惯别带到移动开发里来,什么简单就怎么来。

     这是最要命的习惯,什么简单,怎么来
24 楼 fkpwolf 2009-10-10  
性能么,出现了性能再说性能调优,一般的程序都没有很严重的性能问题。
23 楼 java.lang.Object 2009-10-09  
vlinux 写道
BTW,我不认为所有的移动开发都必须JavaME的习惯。
在智能机的时代,随着PDA性能的提高,采用标准的Java开发习惯并没有什么坏处。相反,采用混乱、不便维护的JavaME开发习惯才是真正的不利于越来越庞大的移动开发代码。

在Android的API中,我确实没有看到Google的开发人员遵循JavaME的开发习惯,相反的是接口、Callback、继承、重载、XML配置等横行

你这样比较就不太厚道了,JavaMe的运行环境和android是没有可比之处的。两者相差太远了。
22 楼 hepeng421 2009-10-09  
虽然都是java,但别拿android和j2me等同。
21 楼 vlinux 2009-10-08  
BTW,我不认为所有的移动开发都必须JavaME的习惯。
在智能机的时代,随着PDA性能的提高,采用标准的Java开发习惯并没有什么坏处。相反,采用混乱、不便维护的JavaME开发习惯才是真正的不利于越来越庞大的移动开发代码。

在Android的API中,我确实没有看到Google的开发人员遵循JavaME的开发习惯,相反的是接口、Callback、继承、重载、XML配置等横行
20 楼 hepeng421 2009-10-08  
得,以前搞j2ee的臭习惯别带到移动开发里来,什么简单就怎么来。
19 楼 liudun 2009-10-07  
deeplives 写道
java.lang.Object 写道
deeplives 写道
vlinux 写道
javame貌似不支持反射,所以...而且在小小的javame项目中,有多少个类用指头都能掰得过来,没必要吧


javame 是支持反射的 ,我公司就是用反射写了一个框架,但是感觉上就有这样一个问题:如果这个框架太简单,那就没啥作用;如果太复杂,性能和通用性就会是一个很大的问题。

JAVAME怎么可能支持反射,你用的是什么版本的JAVAME,目前主流的MIDP2.0和CLDC1.1里面都没有反射的API。能否帖出来和大家分享一下?


呵呵,因为我在代码里看到 'Class.newInstance()" 方法,可能java me 只支持部分反射功能,还是这根本不属于反射呢?请指教,谢谢


仅仅‘Class.newInstance()’不能算反射吧?
18 楼 lordhong 2009-10-05  
java.lang.Object 写道
这个项目能做的是控制类的初始化而已,它并不能给对象注入成员。因为JAVAME在基本类库里面没有提供反射操作。如果要做一些初始化后的动作,还需要实现它的一些接口,然后它在初始化以后,会自动调用相关的方法。
它整个功能都是建立的在类的级别上,和spring是没办法比的
还有一个可能性,那就是在编译的时候,织入代码。


这样的话是要考虑接口, 具体情况具体分析
17 楼 java.lang.Object 2009-10-05  
这个项目能做的是控制类的初始化而已,它并不能给对象注入成员。因为JAVAME在基本类库里面没有提供反射操作。如果要做一些初始化后的动作,还需要实现它的一些接口,然后它在初始化以后,会自动调用相关的方法。
它整个功能都是建立的在类的级别上,和spring是没办法比的
还有一个可能性,那就是在编译的时候,织入代码。
16 楼 deeplives 2009-10-04  
peerlessme 写道
j2me不支持反射,怎么IOC呢?


我也觉得不太可能,但是网上有这方面的项目
http://sourceforge.net/projects/signal/

不过仍然处于beta阶段,能不能用都是一个问题
15 楼 deeplives 2009-10-04  
chandler 写道
   我觉得还是具体应用具体分析吧,不能一竿子打死吧?
   开发经验不足,没有考虑到电池,当然也不知道怎么考虑电池。但是怎么说呢,就好像你要写松散的代码也要付出代价一样。这种程序的写法如果程序复杂,日后的维护等多半会成为问题。应该就具体问题,已经各种客观条件作出取舍比较好。
   我本人比较趋向于如果能写的低耦合的代码,就尽量低耦合。


是啊,我的想法和你差不多,我刚刚接手了一堆乱糟糟的代码,当需要新增一些功能,或者fix某些bug的时候,非常痛苦
14 楼 deeplives 2009-10-04  
lordhong 写道
移动编程性能最重要, 所以interface,接口之类的能少就少, 连factory这些可以不要的都不要.  只要你明确知道需要用到的类, 就直接写出来, 比如:
Map<String, String> map = new HashMap<String, String>();
就直接写成HashMap<String, String> map = new HashMap<String, String>();

更有甚者, 直接用public的property, 跳过getter和setter, 少几个method stack的pop/push

如果可以用static的话, 立马上static ;)
IOC是用相同的接口, 方便替换不同的实现.  移动编程目前还不需要这些



谢谢指教,感觉又回到了函数式编程的年代
13 楼 deeplives 2009-10-04  
java.lang.Object 写道
deeplives 写道
vlinux 写道
javame貌似不支持反射,所以...而且在小小的javame项目中,有多少个类用指头都能掰得过来,没必要吧


javame 是支持反射的 ,我公司就是用反射写了一个框架,但是感觉上就有这样一个问题:如果这个框架太简单,那就没啥作用;如果太复杂,性能和通用性就会是一个很大的问题。

JAVAME怎么可能支持反射,你用的是什么版本的JAVAME,目前主流的MIDP2.0和CLDC1.1里面都没有反射的API。能否帖出来和大家分享一下?


呵呵,因为我在代码里看到 'Class.newInstance()" 方法,可能java me 只支持部分反射功能,还是这根本不属于反射呢?请指教,谢谢
12 楼 peerlessme 2009-10-04  
j2me不支持反射,怎么IOC呢?
11 楼 chandler 2009-10-04  
   我觉得还是具体应用具体分析吧,不能一竿子打死吧?
   开发经验不足,没有考虑到电池,当然也不知道怎么考虑电池。但是怎么说呢,就好像你要写松散的代码也要付出代价一样。这种程序的写法如果程序复杂,日后的维护等多半会成为问题。应该就具体问题,已经各种客观条件作出取舍比较好。
   我本人比较趋向于如果能写的低耦合的代码,就尽量低耦合。
10 楼 lordhong 2009-10-04  
chandler 写道
lordhong 写道
移动编程性能最重要, 所以interface,接口之类的能少就少, 连factory这些可以不要的都不要.  只要你明确知道需要用到的类, 就直接写出来, 比如:
Map<String, String> map = new HashMap<String, String>();
就直接写成HashMap<String, String> map = new HashMap<String, String>();

更有甚者, 直接用public的property, 跳过getter和setter, 少几个method stack的pop/push

如果可以用static的话, 立马上static ;)
IOC是用相同的接口, 方便替换不同的实现.  移动编程目前还不需要这些

  我觉得现在的,除非游戏,一般的应用用不着太考虑性能吧?怎么说呢,0.01秒和0.99秒也许真的差的不是很多的。
  我觉得最好实验一下,只要反应时间可以接受,还是能够尽量写得松散一点。现在的手机,性能并不是那么差了。


不是手机性能差的问题... 而是电池不持久的问题...
9 楼 chandler 2009-10-04  
lordhong 写道
移动编程性能最重要, 所以interface,接口之类的能少就少, 连factory这些可以不要的都不要.  只要你明确知道需要用到的类, 就直接写出来, 比如:
Map<String, String> map = new HashMap<String, String>();
就直接写成HashMap<String, String> map = new HashMap<String, String>();

更有甚者, 直接用public的property, 跳过getter和setter, 少几个method stack的pop/push

如果可以用static的话, 立马上static ;)
IOC是用相同的接口, 方便替换不同的实现.  移动编程目前还不需要这些

  我觉得现在的,除非游戏,一般的应用用不着太考虑性能吧?怎么说呢,0.01秒和0.99秒也许真的差的不是很多的。
  我觉得最好实验一下,只要反应时间可以接受,还是能够尽量写得松散一点。现在的手机,性能并不是那么差了。
8 楼 java.lang.Object 2009-10-04  
deeplives 写道
vlinux 写道
javame貌似不支持反射,所以...而且在小小的javame项目中,有多少个类用指头都能掰得过来,没必要吧


javame 是支持反射的 ,我公司就是用反射写了一个框架,但是感觉上就有这样一个问题:如果这个框架太简单,那就没啥作用;如果太复杂,性能和通用性就会是一个很大的问题。

JAVAME怎么可能支持反射,你用的是什么版本的JAVAME,目前主流的MIDP2.0和CLDC1.1里面都没有反射的API。能否帖出来和大家分享一下?
7 楼 lordhong 2009-10-04  
vlinux 写道
lordhong 写道
移动编程性能最重要, 所以interface,接口之类的能少就少, 连factory这些可以不要的都不要.  只要你明确知道需要用到的类, 就直接写出来, 比如:
Map<String, String> map = new HashMap<String, String>();
就直接写成HashMap<String, String> map = new HashMap<String, String>();

更有甚者, 直接用public的property, 跳过getter和setter, 少几个method stack的pop/push

如果可以用static的话, 立马上static ;)


完蛋来,我全部都犯了  -____-!!!


施主... 浪子回头... 为时不晚...

相关推荐

    SNS单模无芯光纤仿真与传感器结构特性分析——基于Rsoft beamprop模块

    内容概要:本文主要探讨了SNS单模无芯光纤的仿真分析及其在通信和传感领域的应用潜力。首先介绍了模间干涉仿真的重要性,利用Rsoft beamprop模块模拟不同模式光在光纤中的传播情况,进而分析光纤的传输性能和模式特性。接着讨论了光纤传输特性的仿真,包括损耗、色散和模式耦合等参数的评估。随后,文章分析了光纤的结构特性,如折射率分布、包层和纤芯直径对性能的影响,并探讨了镀膜技术对光纤性能的提升作用。最后,进行了变形仿真分析,研究外部因素导致的光纤变形对其性能的影响。通过这些分析,为优化光纤设计提供了理论依据。 适合人群:从事光纤通信、光学工程及相关领域的研究人员和技术人员。 使用场景及目标:适用于需要深入了解SNS单模无芯光纤特性和优化设计的研究项目,旨在提高光纤性能并拓展其应用场景。 其他说明:本文不仅提供了详细的仿真方法和技术细节,还对未来的发展方向进行了展望,强调了SNS单模无芯光纤在未来通信和传感领域的重要地位。

    发那科USM通讯程序socket-rece

    发那科USM通讯程序socket-set

    嵌入式八股文面试题库资料知识宝典-WIFI.zip

    嵌入式八股文面试题库资料知识宝典-WIFI.zip

    JS+HTML源码与image

    源码与image

    物流行业车辆路径优化:基于遗传算法和其他优化算法的MATLAB实现及应用

    内容概要:本文详细探讨了物流行业中路径规划与车辆路径优化(VRP)的问题,特别是针对冷链物流、带时间窗的车辆路径优化(VRPTW)、考虑充电桩的车辆路径优化(EVRP)以及多配送中心情况下的路径优化。文中不仅介绍了遗传算法、蚁群算法、粒子群算法等多种优化算法的理论背景,还提供了完整的MATLAB代码及注释,帮助读者理解这些算法的具体实现。此外,文章还讨论了如何通过MATLAB处理大量数据和复杂计算,以得出最优的路径方案。 适合人群:从事物流行业的研究人员和技术人员,尤其是对路径优化感兴趣的开发者和工程师。 使用场景及目标:适用于需要优化车辆路径的企业和个人,旨在提高配送效率、降低成本、确保按时交付货物。通过学习本文提供的算法和代码,读者可以在实际工作中应用这些优化方法,提升物流系统的性能。 其他说明:为了更好地理解和应用这些算法,建议读者参考相关文献和教程进行深入学习。同时,实际应用中还需根据具体情况进行参数调整和优化。

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_8.doc.zip

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_8.doc.zip

    基于灰狼优化算法的城市路径规划Matlab实现——解决TSP问题

    内容概要:本文介绍了基于灰狼优化算法(GWO)的城市路径规划优化问题(TSP),并通过Matlab实现了该算法。文章详细解释了GWO算法的工作原理,包括寻找猎物、围捕猎物和攻击猎物三个阶段,并提供了具体的代码示例。通过不断迭代优化路径,最终得到最优的城市路径规划方案。与传统TSP求解方法相比,GWO算法具有更好的全局搜索能力和较快的收敛速度,适用于复杂的城市环境。尽管如此,算法在面对大量城市节点时仍面临运算时间和参数设置的挑战。 适合人群:对路径规划、优化算法感兴趣的科研人员、学生以及从事交通规划的专业人士。 使用场景及目标:①研究和开发高效的路径规划算法;②优化城市交通系统,提升出行效率;③探索人工智能在交通领域的应用。 其他说明:文中提到的代码可以作为学习和研究的基础,但实际应用中需要根据具体情况调整算法参数和优化策略。

    嵌入式八股文面试题库资料知识宝典-Intel3.zip

    嵌入式八股文面试题库资料知识宝典-Intel3.zip

    嵌入式八股文面试题库资料知识宝典-2019京东C++.zip

    嵌入式八股文面试题库资料知识宝典-2019京东C++.zip

    嵌入式八股文面试题库资料知识宝典-北京光桥科技有限公司面试题.zip

    嵌入式八股文面试题库资料知识宝典-北京光桥科技有限公司面试题.zip

    物理学领域十字形声子晶体的能带与传输特性研究及应用

    内容概要:本文详细探讨了十字形声子晶体的能带结构和传输特性。首先介绍了声子晶体作为新型周期性结构在物理学和工程学中的重要地位,特别是十字形声子晶体的独特结构特点。接着从散射体的形状、大小、排列周期等方面分析了其对能带结构的影响,并通过理论计算和仿真获得了能带图。随后讨论了十字形声子晶体的传输特性,即它对声波的调控能力,包括传播速度、模式和能量分布的变化。最后通过大量实验和仿真验证了理论分析的正确性,并得出结论指出散射体的材料、形状和排列方式对其性能有重大影响。 适合人群:从事物理学、材料科学、声学等相关领域的研究人员和技术人员。 使用场景及目标:适用于希望深入了解声子晶体尤其是十字形声子晶体能带与传输特性的科研工作者,旨在为相关领域的创新和发展提供理论支持和技术指导。 其他说明:文中还对未来的研究方向进行了展望,强调了声子晶体在未来多个领域的潜在应用价值。

    嵌入式系统开发_USB主机控制器_Arduino兼容开源硬件_基于Mega32U4和MAX3421E芯片的USB设备扩展开发板_支持多种USB外设接入与控制的通用型嵌入式开发平台_.zip

    嵌入式系统开发_USB主机控制器_Arduino兼容开源硬件_基于Mega32U4和MAX3421E芯片的USB设备扩展开发板_支持多种USB外设接入与控制的通用型嵌入式开发平台_

    e2b8a-main.zip

    e2b8a-main.zip

    少儿编程scratch项目源代码文件案例素材-火柴人跑酷(2).zip

    少儿编程scratch项目源代码文件案例素材-火柴人跑酷(2).zip

    【HarmonyOS分布式技术】远程启动子系统详解:跨设备无缝启动与智能协同的应用场景及未来展望

    内容概要:本文详细介绍了HarmonyOS分布式远程启动子系统,该系统作为HarmonyOS的重要组成部分,旨在打破设备间的界限,实现跨设备无缝启动、智能设备选择和数据同步与连续性等功能。通过分布式软总线和分布式数据管理技术,它能够快速、稳定地实现设备间的通信和数据同步,为用户提供便捷的操作体验。文章还探讨了该系统在智能家居、智能办公和教育等领域的应用场景,展示了其在提升效率和用户体验方面的巨大潜力。最后,文章展望了该系统的未来发展,强调其在技术优化和应用场景拓展上的无限可能性。 适合人群:对HarmonyOS及其分布式技术感兴趣的用户、开发者和行业从业者。 使用场景及目标:①理解HarmonyOS分布式远程启动子系统的工作原理和技术细节;②探索该系统在智能家居、智能办公和教育等领域的具体应用场景;③了解该系统为开发者提供的开发优势和实践要点。 其他说明:本文不仅介绍了HarmonyOS分布式远程启动子系统的核心技术和应用场景,还展望了其未来的发展方向。通过阅读本文,用户可以全面了解该系统如何通过技术创新提升设备间的协同能力和用户体验,为智能生活带来新的变革。

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_1.zip

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_1.zip

    少儿编程scratch项目源代码文件案例素材-激光反弹.zip

    少儿编程scratch项目源代码文件案例素材-激光反弹.zip

    COMSOL相控阵检测技术在有机玻璃斜楔中检测工件内部缺陷的应用研究

    内容概要:本文详细介绍了COMSOL相控阵检测技术在有机玻璃斜楔上放置16阵元进行工件内部缺陷检测的方法。首先阐述了相控阵检测技术的基本原理,特别是通过控制各阵元的激发时间和相位来实现声波的聚焦和扫描。接着,重点解析了横孔缺陷的反射接收波,解释了波的折射现象及其背后的物理原因。最后,通过实例展示了COMSOL模拟声波传播过程的成功应用,验证了该技术的有效性和准确性。 适合人群:从事固体力学、无损检测领域的研究人员和技术人员,尤其是对相控阵检测技术和COMSOL仿真感兴趣的读者。 使用场景及目标:适用于需要精确检测工件内部缺陷的研究和工业应用场景,旨在提高检测精度和效率,确保产品质量和安全。 其他说明:文中提到的声速匹配现象有助于理解波在不同介质间的传播特性,这对优化检测参数设置有重要意义。

    少儿编程scratch项目源代码文件案例素材-极速奔跑者.zip

    少儿编程scratch项目源代码文件案例素材-极速奔跑者.zip

    嵌入式八股文面试题库资料知识宝典-微软_interview.zip

    嵌入式八股文面试题库资料知识宝典-微软_interview.zip

Global site tag (gtag.js) - Google Analytics