Open Johnny850807 opened 7 years ago
可讀性
getter 跟 setter 請保持它的目的性,如果你用set為首來命名你玩家猜答案的函數, 這樣將會誤導所有使用你setter的人,因為setter必須傳入參數設置不然就不叫setter。
函數定義
同上,這擁有極大的問題,你並沒有設想好別人如何清楚簡單地使用你的Player類別, 既然只是要玩家猜數字,那麼為何不直接回傳 int ?
public int guessNumber()
可讀性是不是多二十倍??
繼承關係
你把人類玩家設置成父類別,然後AI去繼承他,這是極度混淆的關係, 因為AI根本不是一種真實玩家,
這才是完美的繼承架構。 而Player 跟 AI是 抽象的,你似乎對抽象不熟,多型一定是建立在抽象之上,否則程式都是一團亂。
多型的善用
如果是人類的話才叫他去命名 (這樣的話擴充性很低,不同玩家要有不同處理方式步驟?) 關於,如何讓所有玩家知道自己該如何命名,而不用分別呼叫? 別人也發生過,請參考 https://github.com/Johnny850807/Coding-GYM/issues/67
getter 跟 setter 請保持它的目的性,如果你用set為首來命名你玩家猜答案的函數, 這樣將會誤導所有使用你setter的人,因為setter必須傳入參數設置不然就不叫setter。
同上,這擁有極大的問題,你並沒有設想好別人如何清楚簡單地使用你的Player類別, 既然只是要玩家猜數字,那麼為何不直接回傳 int ?
可讀性是不是多二十倍??
你把人類玩家設置成父類別,然後AI去繼承他,這是極度混淆的關係, 因為AI根本不是一種真實玩家,
這才是完美的繼承架構。 而Player 跟 AI是 抽象的,你似乎對抽象不熟,多型一定是建立在抽象之上,否則程式都是一團亂。
如果是人類的話才叫他去命名 (這樣的話擴充性很低,不同玩家要有不同處理方式步驟?) 關於,如何讓所有玩家知道自己該如何命名,而不用分別呼叫? 別人也發生過,請參考 https://github.com/Johnny850807/Coding-GYM/issues/67