2010-12-27 17 views
0

Ich habe zwei Plugins pluginA und pluginB, die SDK von einer Plattform C verwenden. Offensichtlich pluginA und pluginB wäre nicht in der Lage, Methoden voneinander zuzugreifen, und jede Kommunikation zwischen pluginA und pluginB muss sein via C.Zugriff auf statische Methode über Plugins

pluginA hat eine Utility-Klasse utilA, die eine statische Methode getMethod() hat, die in pluginB verwendet wird. und gibt ein Objekt einer Klasse zurück, die sich auch in pluginB selbst befindet. Ich kann jede Schnittstelle/Factory-Klasse in Plattform C erstellen, so dass diese Kommunikation durchgeführt werden kann.

Kann jemand vorschlagen, wie man dieses Problem angeht.

Antwort

1

Dies ist ein Factory-Design-Muster. Die Factory sollte eine Ressource sein, auf die über das SDK alle "Plugins" zugreifen können, und das SDK sollte entscheiden (vielleicht mit einer Einstellungsdatei oder Anmerkungen), welches Plugin zum Lieferanten für die Factory wird.

Ein anderer Designgedanke. Ich bevorzuge die Verwendung von Schnittstellen als Ausgabe eines Factory-Objekts. Auf diese Weise kann eine Klasse die Schnittstelle beliebig implementieren, und jede andere Klasse (egal, ob sie erstellt wurde oder vom ClassLoader geladen wurde) kann diese Factory verwenden. Dies kann Ihnen eine Menge Kopfschmerzen beim Testen oder bei der Laufzeit ersparen.

+0

Danke. Das hat funktioniert. – Himz

Verwandte Themen