J2SE论坛网»J2SE技术»一个问题,关于编程习惯

一个问题,关于编程习惯

问?:
大家好,书上说用大量的IF ELSE IF ELSE 不好,不属于面向对象

改用什么替换啊


还有有人说linkedlist不长用,让我不要用,真的假的啊,我看到一个计算器里就用了啊

帮忙答下啊,特别是第一个问题,我在做个计算器
答!: 1:
if else 的确不是很好,但并不是说就不能用。
一般能用 switch 语句代替的都用 switch 语句代替。

也可以用面象对象的方法,这里涉及到多种设计模式,初学者就先不要考虑了吧。

第二个问题,LinkedList 并不是个坏东西,与 ArrayList 相比,它会占用更多的内存。而且一般情况下效率不会比 ArrayList 高。但是,如果数据量较大而且插入、删除等操作比较频繁的时候,用 LinkedList 会比 ArrayList 明显提高效率。

不过对于初学者来说,一个 ArrayList 足够了。写计算器主要是会用到队列或者栈操作,操作量应该不大,用 ArrayList 足够。也可以考虑用 Stack。
答!: 2:
严重同意楼上
答!: 3:
我不知道switch比if else好在哪里,性能?数据库和网络资源才是关键
面向对象?我见过的开源程序中很多都是大量的使用if else,没看到人家用很多switch
也许境界不到吧,懒得注意这些。
答!: 4:
在很多情况下if else if这种模式用switch是改写不了的,
在JAVA中,switch能接受的参数只有int以下的值
但是if else if却可以比较任何东西
答!: 5:
switch 也有缺陷,容易把 break;给漏掉,而导致多种case情况的发生。
答!: 6:
if else本来就是基本的流程控制语句,跟面向对象没什么关系。所有的面向对象的语言都要用到if else,并不是应用了面向对象的思想,if else就可以被替代了。因此,说if else不面向对象完全是误解。
当然提出if else不面向对象,也是有道理的。这是因为可以用多态解决的问题,都用if else来实现了,这就是if else被批评的原因。但是,这是个别程序员没有面向对象的编程思想导致的,确实不能怪if else语句本身。
答!: 7:
不用if else只能当成一个思考问题的原则吧。完全不用是不可能的。
但很多部分可以想想是不是可以用其它方式实现。更多使用多态的方法,工厂模式等。那种实现方式更好理解和更好维护。
答!: 8:
这和用不用if else没什么关系。流程控制肯定要用拉!
我感觉面向对象的就是类包的调用以及模块化的设计思想!!!
答!: 9:
if else和switch各有个的用处.switch可以做的if else都可以做

但是if else可以做的switch就不一定都能做啦~
答!: 10:
非常同意 huhbc() 的说法。

楼主提到的“if-else 不符合面向对象原则”,应该不是指“if-else 和 switch 哪个更好”的问题,而是说,本来可以用多态来解决的问题,有人把它写在一个方法里,然后用一个巨大的 if-else 来处理。

其实,不只是“面向对象”,即使在“面向过程”的 C 程序里,像这种情况,也应该适当拆解的。
答!: 11:
我不知道怎么给分呀,帮忙呀
答!: 12:
点管理 在想给分的人输入分值 再输入密码给分。。

相关JAVA教程:
***奇怪 Operation timed out: connect?? 是什么错误??***
请问能不能在对一个文件进行写操作的时候同时进行读操作呢?
帮忙分析下一个很小的程序!
按鼠标左键,光标移动的event.keyCode=???
有做过类似Editplus编辑器的吗?文本编辑,左边显示1、2、3..所在的行数,是怎么实现的?
窗口间如何传递键盘消息?
如何用Java实现抓取指定端口的数据包?(在线等待)
我这样写正则有问题吗?
一個關於jacob的問題,跪求援助!
关于java中如何编写email发送端???
如何通过程序在eclipse中判断一个文件是否保存。
从文件中读出一个Object,怎样知道这个Object具体是什么类型(有代码),只能用Instanceof吗?