Ich arbeite an einem Empfehlungssystem. Es wäre eine Android-Anwendung, in die der Benutzer seine Präferenzen eingibt, und auf der Basis dieser Präferenzen würden diesem Benutzer andere passende Profile angezeigt. Ich erhalte Daten vom Benutzer und speichere sie im Firebase. Wie implementiert man das Strategy Design Pattern?
Dies sind die numerischen Werte und um die angepassten Profile zu diesem Benutzer zu zeigen, ich bin mit zwei Algorithmen für die Ähnlichkeitszählung zwischen den Benutzern Berechnung: Cosine similarity
und Pearson correlation
Ich hole den Namen des Algorithmus von der Anwendung und dann Ausführen des Algorithmus, um dem Benutzer ähnliche Profile zu zeigen.
if (request.query.algo === "cosine") {
// compute cosine value
}
else if (request.query.algo === "pearson-correlation") {
// compute pearson correlation coefficents
}
Da es sich um eine Echtzeit-Anwendung wäre so dass diese Methode völlig falsch ist, möchte ich Strategy Design-Muster implementieren, wo der Algorithmus auf der Laufzeit entschieden werden und nicht auf der Kompilierung.
So, jetzt ist das Problem, in Strategie-Design-Muster, wie würde ich entscheiden, wann welchen Algorithmus verwenden?
Zum Beispiel, wenn Sie etwas mit einer Kreditkarte kaufen, spielt die Art der Kreditkarte keine Rolle. Alle Kreditkarten haben einen Magnetstreifen, auf dem Informationen kodiert sind. Die Streifen und das, was sie enthält, stellen die "Schnittstelle" dar, und die Art der Karte wäre die "Implementierung". Jede Kreditkarte kann durch eine andere ersetzt werden und alle sind völlig unabhängig voneinander.
Ähnlich, auf welchen Grundlagen sollte ich zwischen Cosine und Pearson zur Laufzeit mit Strategie Design-Muster wählen?
Warum ist diese Methode falsch? Dies ist immer noch die Wahl der Strategie in der Laufzeit, denn es hängt von der Anfrage – ByeBye