2017-04-24 2 views
1

Sowohl this answer als auch this article schlagen vor, einen separaten Import namens "Resolver" zu erstellen, der den Dienst importiert, der meine Daten abruft. Ich habe das Gefühl, es würde mehr Sinn machen und weniger Code sein, um meine Dienste zu modifizieren, um Resolve zu implementieren.Warum muss ein Resolver von einem Service getrennt sein?

Angular's docs gehen sogar so weit, um ihre Resolver Dienstleistungen, z. crisis-detail-resolver.service.

Warum müssen Resolver von den von ihnen verwendeten Diensten getrennt sein? Oder ist es in einigen Fällen in Ordnung, dass Ihre Dienste eine Lösung implementieren?

+0

Klassen können nur eine Auflösungsmethode haben. Wenn Ihr Service also für mehrere verschiedene Auflösungen verwendet wird, benötigen Sie separate Auflösungsklassen. – adharris

+0

@adharris Ah. Aber wenn es sich um einen einfachen Dienst handelt, der immer nur eine Sache löst, ist es in Ordnung, meinen Dienst zu einem Resolver zu machen? Oder wird es immer noch als "schlechte Praxis" angesehen, weil der Service irgendwann wachsen kann? – adamdport

+0

Sie sind auch leichter zu testen, wenn sie eine eigene Sache sind; aber ich denke nicht, dass es so groß ist, wenn man sie kombiniert. – adharris

Antwort

0

Resolver ARE-Dienste. Es ist nicht so, dass sie getrennt werden müssen. Resolver haben nur einen Zweck, und das ist zu lösen. Daher sind sie typischerweise getrennt, da sie nicht die gleiche Rolle wie andere Dienste spielen. Wenn Sie Ihre gesamte andere Logik in einen Resolver-Service einbeziehen, wird die Logik dieses Service jedes Mal geladen, wenn Sie eine Route aufrufen, an die der Resolver angehängt ist, was keinen Sinn ergeben würde. Es gibt einige andere subtile Gründe, Resolver zu trennen, aber hauptsächlich dient es nur der Trennung von Bedenken und anderen Konflikten.

Verwandte Themen