首先,我不知道如何打電話給我的問題,所以任何建議更好的標題請讓我知道。動態選擇一個類
我想創建一個接口,以便其他人可以添加他們的實現,然後在運行時決定使用哪個實現。
即 我創建一個接口「食物」,並存在2個實現「早餐」和「午餐」。在實現中都有相同的方法名稱和相同的參數,我想讓用戶在運行時調用其中任何一個。 「makeFood()使用早餐」或「makeFood()使用午餐」。
一種可能性是隻編譯一個實現,但如果將來必須使用其他實現,則需要刪除.class文件。
或者我應該使用某種類型的繼承?
此外(不優先): 我不知道實現類名稱,所以有人可以創建「晚餐」或「secondBreakfast」。這會導致我陷入另一個困境,如果用戶請求尚未實現的「類」,該怎麼辦:S我總是可以假設用戶知道哪些實現可用。
使用'工廠'策略,根據傳入的參數返回不同的'Food'實例, – hiway
您是否已經實現了一個實現,只希望用戶選擇要使用哪一個,或者您希望用戶添加它自己的庫在運行時? – Don
@Juan,如果用戶傳入一個無效的參數,你可以拋出一個異常,告訴用戶有多少種「食物」存在。 – hiway