我正在使用推薦系統。這將是一個Android應用程序,用戶將在其中輸入他們的偏好,並在這些偏好的基礎上,向該用戶顯示其他匹配的簡檔。我從用戶那裏獲取數據並將其存儲在Firebase中。如何實施策略設計模式?
這些是數值和爲了顯示匹配的簡檔與該用戶,我使用用於計算用戶之間的相似性計數兩種算法:Cosine similarity
和Pearson correlation
我擷取算法的名稱從應用程序,然後執行算法,以顯示相似的配置文件給用戶。
if (request.query.algo === "cosine") {
// compute cosine value
}
else if (request.query.algo === "pearson-correlation") {
// compute pearson correlation coefficents
}
因爲這將是一個實時應用,因此這種方法是完全錯誤的,我想實現戰略設計模式,其中的算法可以在運行時,而不是在編譯時決定。
所以現在的問題是,在策略設計模式中,我將如何決定何時使用哪種算法?
例如,當您用信用卡購買東西時,信用卡類型無關緊要。所有信用卡都有一個磁條,其中編碼了信息。條和它包含的內容代表'接口',卡的類型將是'實現'。每張信用卡都可以被任何其他人取代,而且所有信用卡都完全相互獨立。
同樣,我應該在什麼基礎上選擇餘弦和皮爾森之間的運行時間與策略設計模式?
爲什麼這種方法是錯誤的?這仍然是運行時選擇策略,因爲它取決於請求 – ByeBye