`
deeplives
  • 浏览: 1803 次
  • 性别: 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 ;)


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


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

相关推荐

    30种java技术框架图

    标题“30种java技术框架图”与描述“这个介绍的比较全面,内容比较详细 对初学者有很大...由于文档内容是通过OCR扫描得到,可能会存在识别错误,读者在学习时需要结合实际的Java框架知识,对发现的问题进行纠正和理解。

    网站常用ioc

    【标签】:“IOC”标签与Spring框架密切相关,Spring是Java开发中最常用的IOC/DI实现框架。它提供了一个全面的解决方案,包括数据库事务管理、AOP(面向切面编程)、MVC(模型-视图-控制器)等,广泛应用于企业级Web...

    java常用Jar包

    Java开发中,jar(Java Archive)包是一种重要的文件格式,用于集合多个类文件以及相关的元数据,便于分发和执行。在Java应用中,jar包是实现模块化和代码复用的关键工具。本资料包“java常用Jar包”包含了一些在...

    韩顺平java视频教程源代码和笔记

    3. **Java ME (J2ME)**:面向嵌入式系统及移动设备的应用开发。 #### Javase课程内容 - **Java面向对象编程** - **Java图形用户界面开发** - **Java数据库编程** - **Java文件I/O流编程** - **Java网络编程** - **...

    Java面试宝典(Java/J2EE Job Interview Companion)

    “Java/J2EE Job Interview Companion” is because these core concepts and design/coding issues helped me to be successful in my interviews and also gave me thumbs up in code reviews.

    java面试题(自己整理)

    ** 主要包括Java SE(标准版)、Java EE(企业版)和Java ME(微型版)。 2. **数据类型与变量** - **Java中的数据类型有哪些?** 分为基本数据类型(如int、float、boolean)和引用数据类型(如类、接口、数组)...

    Java EE技术基础

    Java平台分为三个版本:Java SE(Standard Edition)、Java EE(Enterprise Edition)和Java ME(Micro Edition),分别对应桌面应用、企业级应用和移动设备应用。Java EE 6.0引入了许多关键技术,如EJB 3.0、...

    java必备知识点大全.pdf

    JavaSE、JavaEE、JavaME的区别:JavaSE是Java标准版,JavaEE是Java企业版,JavaME是Java微版。 JDK、JRE、JVM的区别:JDK是Java Development Kit的缩写,包括JRE和开发工具;JRE是Java Runtime Environment,是运行...

    第1讲 Java EE技术概述

    - **Web 服务器**:采用 SSH 组合架构的软件系统不需要专业的 Java 容器或服务器,可以使用简单的 Web 服务器,如 Apache 或 Tomcat,以降低部署复杂度和成本。 通过上述介绍,我们可以看出 Java EE 技术的强大之处...

    Java SSM整合shiro demo

    1. **Spring**:Spring是Java开发中的一个开源框架,提供了一个全面的编程和配置模型,用于现代Java应用程序,尤其在IoC(Inversion of Control)和AOP(Aspect Oriented Programming)方面。 2. **Spring MVC**:...

    Java技术名词解释.pdf

    Java ME(Micro Edition)适用于嵌入式设备,如手机和智能电器。 Core Java是Java的核心部分,包括基础类库、集合框架、I/O流、多线程、网络编程等关键概念,是Java程序员必须掌握的基础知识。JavaScript则是一种轻...

    java购房管理系统毕业设计

    【Java购房管理系统毕业设计】是基于Java技术栈的软件开发项目,主要采用了SSM(Spring、SpringMVC、MyBatis)三大框架进行构建。这是一个综合性的管理平台,旨在为房地产行业的公司提供一套完整的房源管理和销售...

    JAVA学习之我见

    JAVA ME和Servlet是JAVA在移动设备和Web服务上的应用。进一步扩展到企业级应用,J2EE(JAVA EE)提供了完整的架构,包括容器(如Spring)和依赖注入(IoC),Spring框架是其中的关键部分,它实现了大工厂模式,并且...

    java从入门到精通笔记

    - **发展方向**: 包括JAVASE(Java Standard Edition,标准版)、JAVAME(Java Micro Edition,小型版)和JAVAEE(Java Enterprise Edition,企业版)。 - **Java语言特点**: - **简单性**: Java简化了许多C++中的...

    51CTO下载-韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

    为了开发 Java 程序,需要安装并配置 JDK(Java Development Kit)。 1. **下载 JDK**:从 Oracle 官网下载合适的 JDK 版本。 2. **安装 JDK**:按照安装向导完成安装过程。 3. **配置环境变量**:在系统环境中配置...

    spring4me 的demo

    首先,"spring4me"的demo主要展示了Spring框架的四大核心模块:IoC(Inversion of Control,控制反转)、AOP(Aspect Oriented Programming,面向切面编程)、MVC(Model-View-Controller,模型-视图-控制器)以及...

    Java面试问题集.rar

    - **Java版本**:了解Java的不同版本,如Java SE(标准版)、Java EE(企业版)和Java ME(微型版)。 - **JVM(Java虚拟机)**:理解JVM的工作原理,包括类加载、垃圾收集和内存模型。 - **基本数据类型与引用...

    基于java个性化电子相册设计设计与实现.docx

    Java技术平台包括Java SE、Java EE、Java ME三个部分,分别应用于桌面应用、企业应用和移动应用开发。 二、SSM框架介绍 SSM框架是Spring、Spring MVC和MyBatis三个框架的整合,用于开发Web应用程序。Spring框架是...

    JAVA程序开发大全---上半部分

    网上这本书的电子版不好这,这是用money换来的——和大家分享! 由于书太大,我把书分成两部分别上传。 内容简介 本书系统全面地介绍了Java中的各项主流技术,以及基于这些技术的商业化应用程序的开发技巧,在讲解...

Global site tag (gtag.js) - Google Analytics