JAva作成可挿抜プラグイン(回転)
2013 ワード
Java言語の例を挙げてみましょう.プラグインを実装するには、基本的に以下の要件を満たす必要があります:1.ホストシステムは対外公開のインタフェース(interface)を提供する必要があり、プラグインシステムは自分のclassを作成し、公開のinterfaceを実現する.
Javaコード public interface PluginClassInterface{ public void play(); public void stop(); } public PluginClass1 implements PluginClassInterface{ public void play(){ System.out.println("play"); } public void stop(){ System.out.println("stop"); } }
2.ホストシステムはプラグインを動的にロードする必要があり、javaでは以下の方法でオブジェクトをロードしてインスタンス化することができます.
Javaコード Class clazz = Class.forName("my.plugin.PluginClass1"); PluginClassInterface obj = (PluginClassInterface)clazz.newInstance(); obj.play(); obj.stop();
3.ハードコーディングを避けるために、ホストシステムは一般的にxmlプロファイルを提供し、プラグインに関する情報をプロファイルに配置する.これにより、構成に応じて指定されたプラグインをロードすることができる.
plugin.xml
例えば、tomcatはホストシステムに相当し、servletはtomcatの下のプラグインに相当する.
tomcatはjavaxを対外的に提供する.servlet.サーブレットインタフェースは、すべてのビジネスservletがimplementsというインタフェースを必要とします(もちろんservlet仕様は抽象的なHttpサーブレットクラスを提供しています.extends Httpサーブレットを使用できます).ビジネスservletはwebに構成する必要があります.xmlファイルにあります.tomcatはwebを読み出す.xmlの情報でservletをロードし、requestリクエストがある場合、url mappingに従って指定されたビジネスservletのserviceメソッドを呼び出します(HttpServiceクラスは私たちのためにserviceメソッドを実装しているので、doPostとdoGetメソッドを実装するだけでいいです.serviceメソッドではrequestのmethodタイプに基づいてdoGetまたはdoPostメソッドを呼び出します).
Javaコード
public interface PluginClassInterface{
public void play();
public void stop();
}
public PluginClass1 implements PluginClassInterface{
public void play(){
System.out.println("play");
}
public void stop(){
System.out.println("stop");
}
}
2.ホストシステムはプラグインを動的にロードする必要があり、javaでは以下の方法でオブジェクトをロードしてインスタンス化することができます.
Javaコード
Class clazz = Class.forName("my.plugin.PluginClass1");
PluginClassInterface obj = (PluginClassInterface)clazz.newInstance();
obj.play();
obj.stop();
3.ハードコーディングを避けるために、ホストシステムは一般的にxmlプロファイルを提供し、プラグインに関する情報をプロファイルに配置する.これにより、構成に応じて指定されたプラグインをロードすることができる.
plugin.xml
例えば、tomcatはホストシステムに相当し、servletはtomcatの下のプラグインに相当する.
tomcatはjavaxを対外的に提供する.servlet.サーブレットインタフェースは、すべてのビジネスservletがimplementsというインタフェースを必要とします(もちろんservlet仕様は抽象的なHttpサーブレットクラスを提供しています.extends Httpサーブレットを使用できます).ビジネスservletはwebに構成する必要があります.xmlファイルにあります.tomcatはwebを読み出す.xmlの情報でservletをロードし、requestリクエストがある場合、url mappingに従って指定されたビジネスservletのserviceメソッドを呼び出します(HttpServiceクラスは私たちのためにserviceメソッドを実装しているので、doPostとdoGetメソッドを実装するだけでいいです.serviceメソッドではrequestのmethodタイプに基づいてdoGetまたはdoPostメソッドを呼び出します).