Ich habe eine interne Unternehmensanwendung (EJB2), die mit einem bestimmten BPM-Anbieter funktioniert. Die aktuelle Implementierung der In-House-Anwendung umfasst das Einziehen eines Objekts, das nur durch die API des Anbieters verfügbar gemacht wird, und das Vornehmen von Änderungen durch die bereitgestellten Methoden in der API.Brauchen Sie Hilfe, ein eng gekoppeltes Design zu verbessern
Ich denke, dass ich ein internes Objekt irgendwie diesem externen zuordnen muss, aber das scheint zu einfach zu sein und ich bin mir nicht ganz sicher, was die beste Strategie dafür ist. Kann jemand etwas darüber erzählen, wie sie in der Vergangenheit mit solch einer Situation umgegangen sind?
Ich möchte diese Software des Herstellers "black box", so dass ich es bei Bedarf leicht ersetzen kann. Was wäre aus Sicht des Designs der beste Ansatz, um ein internes Objekt diesem exponierten API-Objekt zuzuordnen? Denken Sie daran, dass meine Inhouse-App immer noch mit der API kommunizieren muss, also wird es eine Abhängigkeit zwischen den beiden geben, aber ich möchte sie reduzieren, damit ich auch isoliert von dieser Software mit Junit testen kann.
Danke, Jason
Wenn in der App keine bestimmte Einschränkung vorhanden ist, wird in den folgenden Antworten der Standardweg der Abstraktion (mithilfe der Schnittstelle) dargestellt. Ich bin mir sicher, dass du das bereits wusstest, daher bin ich neugierig, ob es etwas Bestimmtes in deiner App gibt, das das schwierig machen könnte.Auch, nicht versuchen, hier zu piggyback, aber wenn Sie wirklich lose gekoppelt machen möchten, können Sie Spring IOC anstelle von "new MyAPIEndpoint();" – Victor
Ich war auf der Suche nach mehr Bestätigung, dass die Schaffung einer Art von Fassade der Weg war. Ich war mir auch nicht sicher, warum es hier nicht gemacht wurde, also dachte ich, ich hätte etwas übersehen. Der Frühling wäre ideal, und ich hoffe, dass er irgendwann in Zukunft auf diesen Rahmen übertragen wird. – JasonH