2011-01-10 8 views
1

Ich mag würde Designvorschlag für das folgende Problem haben.Separate Implementierung Programmierung Design

ich für Server-Anwendung bin Programmierung (JBOSS)

Es ist etwas sehr häufig, aber ich bin nicht sicher, wie zu implementieren Dies.

Ich implementiere ein Interface.

Jede Klasse, die diese Schnittstelle implementiert, wird eine andere Implementierung haben.

in der Zukunft bin ich sicher, dass ich weitere Implementierungen hinzufügen muss, was bedeutet, dass ich zusätzliche "neue" zu meinem Code hinzufügen muss.

Wie kann ich die "neuen" Zuweisungen in eine andere Datei/Paket/Ohr/Jar trennen, wenn ich in Zukunft zusätzliche Implementierungen für diese spezifische Schnittstelle hinzufügen muss, muss ich nicht den ganzen Quellcode öffnen .

Ich möchte es Plug-Fähigkeit machen, so viel wie ich kann.

danke,

ray.

+0

Warum ist dies C# markiert? – Jens

+0

Coz-Architektur ist plattformübergreifend. – rayman

Antwort

1

Es klingt, als ob Sie nach dependency injection suchen.

+0

Das Beispiel im Wiki, war nicht genug für mich zu verstehen, können Sie mir bitte ein anderes Beispiel geben, also könnte ich es in meinem Code implementieren? Vielen Dank. – rayman

1

Wenn Sie anstelle der Implementierung (was Sie ohnehin tun sollten) die Schnittstelle codieren, können Sie die Abhängigkeitsinjektion verwenden, um die Implementierungsdetails nach Konfiguration anzugeben. Dies ist eine ziemlich übliche Technik bei der Verwendung von Spring.

Wenn Sie sich später für die Verwendung einer neuen Implementierung entscheiden, können die implementierenden Klassen in ihr eigenes jar-Objekt eingefügt, der Anwendung hinzugefügt und die Konfiguration der Abhängigkeitsinjektion geändert werden.

Verwandte Themen