Johnny850807 / Coding-GYM

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

終極密碼:Wally #71

Open Johnny850807 opened 7 years ago

Johnny850807 commented 7 years ago

可讀性 image

getter 跟 setter 請保持它的目的性,如果你用set為首來命名你玩家猜答案的函數, 這樣將會誤導所有使用你setter的人,因為setter必須傳入參數設置不然就不叫setter。

函數定義 image

同上,這擁有極大的問題,你並沒有設想好別人如何清楚簡單地使用你的Player類別, 既然只是要玩家猜數字,那麼為何不直接回傳 int ?

public int guessNumber()

可讀性是不是多二十倍??

繼承關係 image

你把人類玩家設置成父類別,然後AI去繼承他,這是極度混淆的關係, 因為AI根本不是一種真實玩家,

image

這才是完美的繼承架構。 而Player 跟 AI是 抽象的,你似乎對抽象不熟,多型一定是建立在抽象之上,否則程式都是一團亂。

多型的善用 image

如果是人類的話才叫他去命名 (這樣的話擴充性很低,不同玩家要有不同處理方式步驟?) 關於,如何讓所有玩家知道自己該如何命名,而不用分別呼叫? 別人也發生過,請參考 https://github.com/Johnny850807/Coding-GYM/issues/67