爲何不少 Java 程序員會缺少面向對象基本功?這得怪那些 Java 框架。如今 Java 的各類框架太發達、太傻瓜化了,致使不少程序員只須要循序漸進、照着框架進行代碼填空,基本已經喪失了 OOA 和 OOD 的能力。我手下有些個 Java 程序員,對 Spring、Hibernate 等框架了如指掌;但若是給他一個簡單需求,讓他寫一個脫離 Web 框架的獨立 Application,他就不知所措了。這樣的開發人員,未來只能成爲所謂的「軟件藍領」,崗位很可貴到提高。程序員
我此次提以下幾個問題:
★基於接口的繼承和基於實現的繼承各有什麼優缺點?
★繼承(包括 extend 和 implement)有什麼【缺點】?
★多態(polymorphism)有什麼【缺點】?
★爲何 Java 能夠多繼承 interface,而不能夠多繼承 class?
★假如讓你寫一個小遊戲(好比人機對戰的五子棋),你會如何設計類結構?
★類結構設計時,如何考慮可擴展性?小程序
若是上述這些問題你都可以搞得比較清楚,說明你的 OO 基礎還過得去。不然的話,我建議你一邊找些OOAD 和設計模式的書看看,同時本身動手寫些簡單的小程序(不依賴那些框架),把學到的模式理論結合到實踐中。經過這種方式來提升本身 OOAD 的能力,效果會比較好。設計模式