Johnny850807 / Coding-GYM

自己菜鳥階段時在練習Java物件導向、設計模式時,所設計的題庫,此專案庫目前用來讓我的同學/學生 (欠調教的) 們提交程式碼來進行Review,欲參考OOP題目者可直接到Projects區觀看,題目皆(85%)擁有示範解答程式碼。ISSUE放的都是Code Review嘴砲。(物件導向設計學分兩階段→JAVA→設計模式)
24 stars 6 forks source link

餐廳執行緒:Wally #110

Open Johnny850807 opened 5 years ago

Johnny850807 commented 5 years ago
  1. 列舉可配字串屬性讓餐點被印出來的時候是可讀的 例如:廚師5號已烹飪完第24位客人的食物:CHICKEN_NUGGETS 直接把列舉名稱印出來很醜

  2. 你部分命名不具有Clean Code 原則

    • 函數名稱要動詞+名詞 storeClose => closeStore chefOnThePosition => createChefThreads

請你閱讀我們的範例,查看程式碼縮排是否與你不同, 只要再不遵守相同縮排規則,我連看都不看。

  1. 沒善用內部類別

Chef明明就可以直接擔任Restaurant的內部實體類別 則你還讓他同步於全域變數 counterStaff ? image 連IDE都跳出來跟我說你這樣有問題

Johnny850807 commented 5 years ago
  1. 排版

你已經有縮排了 但排版還是怪怪的 多看看我們的程式 不要留一些不必要的換行

像這個區塊的縮排就不只一個tab,換行也太過極端 image

然後上下兩個類別的縮排竟然不一致 class要內縮一個tab 程式區塊 if/else/for/while/try-catch 都只內縮一個tab image

一樣,請一定要先注重排版,不然寫起程式浮躁無力。 (請你去看懂我的餐廳,並欣賞。)

  1. 執行緒協作

image

你偷懶使用迴圈來等待,這樣這個執行緒會瘋狂占用CPU資源, 請使用我教你的Notify and Wait (效率高很多,主動讓出CPU),請勿浪費那堂課的學費。 所以你是三方的合作 這部分如果你去想清楚怎麼撰寫比較好 則會有很大的進步。

image

因此畫出圖來就會清楚知道,三方彼此溝通鎖住的物件並不相同,畫出設計思維之後就可以大膽實現。


結語: 一樣,請搜尋Java排版及命名規範,請看我的範例,此專案目前給予合格,剩下那些進展看個人心意,2019年請改變,今年年底的你應該是光榮的。