按理说Java是一个很OO的语言,Java社区也一向是充满了“对象”的氛围。但我在面试Java程序员时,却屡屡碰到让我大跌眼镜的事情。我碰到 不止一个求职者,连什么是“多态”都讲不清楚。很多人号称用过设计模式,但一半以上都仅限于单键模式和抽象工厂模式。当我深入问他/她抽象工厂模式到底有 什么好处时,很多人语焉不详。
为什么很多Java程序员会缺乏面向对象基本功?这得怪那些Java框架。现在Java的各种框架太发达、太傻瓜化了,导致很多程序员只需要按部就班、照着框架进行代码填空,基本已经丧失了OOA和OOD的能力。我手下有些个Java程序员,对Spring、Hibernate等框架了如指掌;但如果给他一个简单需求,让他写一个脱离Web框架的独立Application,他就不知所措了。这样的开发人员,将来只能成为所谓的“软件蓝领”,岗位很难得到提升。
同上一个帖子一样,我这次也提如下几个问题:
★基于接口的继承和基于实现的继承各有什么优点、缺点?
★继承(包括extend和implement)有什么缺点?
★多态(polymorphism)有什么缺点?
★为什么Java可以多继承interface,而不可以多继承class?
★假如让你写一个小游戏(比如人机对战的五子棋),你会如何设计类结构?
★类结构设计时,如何考虑可扩展性?
如果上述这些问题你都能够搞得比较清楚,说明你的OO基础还过得去。否则的话,我建议你一边找些OOAD和设计模式的书看看,同时自己动手写些简单的小程序(不依赖那些框架),把学到的模式理论结合到实践中。通过这种方式来提高自己OOAD的能力,效果会比较好。
此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/67243.html
为什么很多Java程序员会缺乏面向对象基本功?这得怪那些Java框架。现在Java的各种框架太发达、太傻瓜化了,导致很多程序员只需要按部就班、照着框架进行代码填空,基本已经丧失了OOA和OOD的能力。我手下有些个Java程序员,对Spring、Hibernate等框架了如指掌;但如果给他一个简单需求,让他写一个脱离Web框架的独立Application,他就不知所措了。这样的开发人员,将来只能成为所谓的“软件蓝领”,岗位很难得到提升。
同上一个帖子一样,我这次也提如下几个问题:
★基于接口的继承和基于实现的继承各有什么优点、缺点?
★继承(包括extend和implement)有什么缺点?
★多态(polymorphism)有什么缺点?
★为什么Java可以多继承interface,而不可以多继承class?
★假如让你写一个小游戏(比如人机对战的五子棋),你会如何设计类结构?
★类结构设计时,如何考虑可扩展性?
如果上述这些问题你都能够搞得比较清楚,说明你的OO基础还过得去。否则的话,我建议你一边找些OOAD和设计模式的书看看,同时自己动手写些简单的小程序(不依赖那些框架),把学到的模式理论结合到实践中。通过这种方式来提高自己OOAD的能力,效果会比较好。
此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/67243.html