在一個接口中,我有一個方法可以在一個實現中使用,但不應該在另一個實現中使用。如果有人在該特定實現中使用該方法,我正在考慮拋出異常。 (這並不是說很容易意外地發現該異常)哪種異常最適合「你不應該在這種情況下運行這種方法」的情況?
更具體地說,該方法是getPlayer(String)
,其按名稱得到Player
。 Player
是一個連接到服務器的客戶端,但是在我的第二個實現中,不可能獲得任何連接的客戶端,因爲第二個實現代表存儲在某個列表中的其他(緩存和技術上離線的)服務器。
任何幫助表示讚賞。讓我知道代碼粘貼是否能更好地描述場景的性質。
聽起來像一個作品的作品,而不是繼承? – 2014-11-21 12:24:02
是的,聽起來像組合會更好。如果您希望僅在接口的少數幾個實現中使用給定方法,那麼很可能您的模型中出現了錯誤。 – 2014-11-21 12:27:15
我可能會將接口拆分成一個「OnlineServer」和「OfflineServer」,其中只有OnlineServer包含'getPlayer(String)'方法,儘管我覺得這不是你們的意思。 – octopod 2014-11-21 12:31:36