参与讨论:J2ME游戏设计应当面向对象还是面向过程
近日与一个朋友闲聊,讨论J2ME。
不知编写J2ME是应当是面向对象还是面向过程。一来J2ME采用的是JAVA语言,本身就是基于面向对象的设计理念。而一方面由于手机目前的资源状况,采用面向对象的设计手段会大大增大内存的开销,还会降低运行效率。
针对这个问题,希望大家各抒己见。
问题点数:0、回复次数:21Top
1 楼wltsui(-无招胜有招-)回复于 2004-08-02 10:03:12 得分 0
用面向对象没有错吧,我感觉要尽量减少继承层次。Top
2 楼netpirate(海盗)回复于 2004-08-02 13:54:45 得分 0
少用,资源有限,效率和速度第一。Top
3 楼dyss(dyss)回复于 2004-08-03 08:33:46 得分 0
如果从来没有学过JAVA和J2ME,那么应该怎样入手学习?
Top
4 楼setimouse(setimouse)回复于 2004-08-07 21:43:37 得分 0
先学JAVA吧Top
5 楼registered(已注册)回复于 2004-08-07 22:42:18 得分 0
不面向对象你用 J2ME 干嘛?
如果不面向对象不如直接用厂商的 SDK 做Top
6 楼zcwhgj(open-minded)回复于 2004-08-08 19:23:27 得分 0
其实如果用面向对象的思想把程序的结构设计好了,不会比面向过程差的。关键是一个适度的粒度问题,把握得好就一定要用面向对象的思想,因为java一切皆对象。Top
7 楼fatshoe(Crab)回复于 2004-08-08 21:34:00 得分 0
这中间有一个度的问题。一方向要保持 java 的 OO 特征,一方面又要保证程序的效率、容量和速度,实现时需要在这两者之间找平衡。
个人人为,速度和内存是第一位的。除非你的手机内存象 K700 那样大,一般来说来,要牺牲一些 OO 特征来换取速度和容量。Top
8 楼setimouse(setimouse)回复于 2004-08-09 18:40:19 得分 0
最近试着用面向对象写了一小段代码,感觉就是只要类不进行继承,接口也别太繁琐
速度还是可以的。不知道大了会怎么样,反正内存是总得考虑的。Top
9 楼hacker18(高手,终于逮到你了!)回复于 2004-08-12 20:11:24 得分 0
不用OOP,不如让Java人道毁灭。Top
10 楼gumnsteel(泡泡糖和铁丝网)回复于 2004-08-12 21:01:51 得分 0
未得精髓Top
11 楼coolcoot(紫黑蓝白)回复于 2004-08-12 22:05:19 得分 0
想哪位大哥说的,一个颗粒度的问题了。呵呵。其实J2EE的JAVA又何尝不是一个颗粒度的问题呢。哈哈。Top
12 楼luler(VC++2003 & WTL 7.5 R U?)回复于 2004-08-12 22:19:41 得分 0
面向屏幕。Top
13 楼setimouse(setimouse)回复于 2004-08-16 11:40:07 得分 0
呵呵Top
14 楼ilovexiaonan(殷选弟)回复于 2004-08-19 01:52:58 得分 0
HelloWorldMIDlet都是用面向对象写的!Top
15 楼leiyu1112(堕落男人)回复于 2004-08-19 06:51:14 得分 0
Java1.2版本发行之后,由于打包和许可证发放的方式上有些改变,导致Java平台被拆成三个版本:j2se(标准版),j2ee(企业版),j2me(微型版)。所以j2me还是OO的。。。。。。。
j2me着重于无线计算环境,无线计算的主要限制是对硬件设备资源的制约。j2me是sun公司的一种模块化,定制的平台,处理这些小到128kb ram设备。
j2me 的优点有
1:可移植性。
2:跨产品的一致性。
3。跨网络的安全性。
4:与j2se,j2ee平台的兼容性。Top
16 楼A_KID(A_KID)回复于 2004-10-11 16:18:00 得分 0
如果你是做S40系列手机的游戏,劝你还是放弃OO吧,因为百宝箱JAR限制大小59K,40手机内存200K。用OO的话类动则几十个,知道每多一个文件JAR包里就多100字节以上。而且运行时内存消耗也很大。
基本上OO和面向过程的结合。比如像地图,精灵这样的东西,还是做成一个类的。但最好不要太多。Top
17 楼Mailbomb(网络咖啡http://blog.csdn.net/mailbomb)回复于 2004-11-27 10:16:29 得分 0
事件处理面向过程,数据类型抽象成类.Top
18 楼UFOFox(风)回复于 2004-11-27 12:25:51 得分 0
没错是面向对象的,一切都是对象,JAVA只有用对象化的思考方式才能做出象样的程序啊Top
19 楼delphiseabird(沙鸥)回复于 2004-11-29 11:49:49 得分 0
Jason Lam说的 呵呵
Coding Tips
The following tips are only suggestions and may or may not give gains in performance, it
is to your own judgment and discretion to use them or not.
1. Use StringBuffer instead of String because of the fact the String object can not
be changed. Any modification to a String variable is actually a new object
creation.
2. Accessing class variables directly is faster then using setter and getter
methods
3. Using local variables are more efficient then instance/class variables
4. Using variables are more efficient then arrays.
5. Avoid synchronization in loops because there is an extra over head to lock and
unlock each time the loop occurs
6. Counting down in loops is faster then counting up
7. Use compound operators like x += 1 instead o f x = x + 1 because fewer byte
codes is generated
8. Remove constant calculations in loops
9. Reuse objects
10. Assign null to unused objects, especially unused threads
11. Try to use already built in methods, for example if you want to copy data from
one array to another use System.arraycopy more then likely this method will
be more efficient then the one you created yourselfTop
20 楼shadowDLL(Tomorrow is another day!)回复于 2004-11-29 12:09:56 得分 0
面向用户!Top
21 楼greatsuoer(英雄索尔)回复于 2004-11-29 13:35:19 得分 0
还是面向对象吧,只不过尽量减少类的个数,把可以整合的都整合到一块去,^_^。Top




