Java基礎識別全部過了一遍,開始學寫小專案。以坦克大戰為例,我是這樣做的:
1 坦克有尺寸、顏色、速度、移動、射擊、越界、消失、回應按鍵,就把相關資料變數和方法寫到這個類。
2 坦克分敵我,敵我有共同特征和不同特征。所以抽象坦克父類,兩個敵我坦克子類。
3 子彈類,尺寸、顏色、速度、移動……
4 墻體類,尺寸、顏色、位置……。
5 獲取坦克、子彈、爆炸和墻體的圖片單獨一個類。
6 視窗類繼承Frame,坦克子彈都在這里畫。
7 協調各個類的呼叫關系,哪些資料公有哪些私有,誰需要誰的引數,拿了引數做什么計算,哪些做成實體方法,哪些做靜態方法。
以上應該是所謂的設計模式了吧?
1到6屬于語法、思路、基礎我覺得不難。但第7點很燒腦,把1到6串成嚴密的邏輯。感覺邏輯和編程沒關系,似乎是天生的能力,而天生的東西就有個體差異,就像人有美丑。并且這種天生邏輯能力沒辦法訓練。
以上還沒加入文字類、聲音類、網路類……否則邏輯更復雜,腦子不夠燒。小小坦克大戰就如此復雜,請問各位日常作業如何面對?是靠人多力量大還是怎么訓練邏輯能力?多寫代碼可以夯實語法,但能提高邏輯能力嗎?
uj5u.com熱心網友回復:
要提煉抽象能力,需求分析拆解能力等等。首先是學習前人的總結,那些設計模式,和對應的一些場景舉例。
實踐時,做任何一個需求,都要做需求分析、設計,出對應的設計檔案,包含用例圖、時序圖、、狀態圖、活動圖、部署圖等等。
uj5u.com熱心網友回復:
你所謂的復雜只是你沒開始做的時候感覺復雜,但實際上事物和事物之間的聯系并沒有那么多,任何復雜的問題都可以分而治之,分割成簡單的問題就沒那么復雜了.uj5u.com熱心網友回復:
說實話,從LZ的這些描述中,沒看出什么設計模式,只是大概看到了LZ想怎么解決問題。就好像LZ要買房子,只看到LZ想要買多少平米,幾房幾廳,房子里有什么設備等粗略環節,至于房子要怎么布局,廳在哪個方位,廚房在哪個方位,窗開在哪里才可以即省空間又可以采光通風良好等細節看不到。所以談不上什么設計模式。換句話說,如果LZ說打算用個工廠類來專門負責造坦克,那還能看到工廠模式
如果LZ說打算用個類監視畫面的坦克數,坦克死了(數量減少)就立刻通知工廠類造坦克,那還能看到監聽器模式或觀察者模式
等等
至于邏輯能力,多寫代碼也分情況的。如果是多寫高效率,高性能的代碼,以后遇到問題你自然而然就會考慮怎么優化,怎么設計才利于后期的擴展。如果只是做一些重復性的crud以及拷貝粘貼的代碼撰寫,那么寫再多代碼也沒什么提高,頂多是個熟練工種。所以你要想訓練自己,除了自己要多寫高效的代碼,還要多看別人寫的高效的代碼,多借鑒別人的想法,吸取別人的精華。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74908.html
標籤:Java SE
上一篇:java共享變數可見性問題
