为何不少 Java 程序员会缺少面向对象基本功?这得怪那些 Java 框架。如今 Java 的各类框架太发达、太傻瓜化了,致使不少程序员只须要循序渐进、照着框架进行代码填空,基本已经丧失了 OOA 和 OOD 的能力。我手下有些个 Java 程序员,对 Spring、Hibernate 等框架了如指掌;但若是给他一个简单需求,让他写一个脱离 Web 框架的独立 Application,他就不知所措了。这样的开发人员,未来只能成为所谓的“软件蓝领”,岗位很可贵到提高。程序员
我此次提以下几个问题:
★基于接口的继承和基于实现的继承各有什么优缺点?
★继承(包括 extend 和 implement)有什么【缺点】?
★多态(polymorphism)有什么【缺点】?
★为何 Java 能够多继承 interface,而不能够多继承 class?
★假如让你写一个小游戏(好比人机对战的五子棋),你会如何设计类结构?
★类结构设计时,如何考虑可扩展性?小程序
若是上述这些问题你都可以搞得比较清楚,说明你的 OO 基础还过得去。不然的话,我建议你一边找些OOAD 和设计模式的书看看,同时本身动手写些简单的小程序(不依赖那些框架),把学到的模式理论结合到实践中。经过这种方式来提升本身 OOAD 的能力,效果会比较好。设计模式