在Eclipse RCP應用程序的上下文中,我決定使用OSGi服務爲插件(即一個包)提供「接口」。如何實例化幾個OSGi服務?
在我的插件之一,我有以下Parser接口:
public interface Parser {
public void start(File file);
public boolean hasNext();
public Object next();
}
消費者插件會使用這個接口來解析文件。因爲可以在同一時間完成幾個解析,並且由於此接口的實現需要多個「狀態」專用字段,所以該服務的每個使用者必須使用專用服務實例。
在這種情況下,manu OSGi教程提供的默認解決方案無法在分析器包的start方法中註冊ONE服務實例。處理這種解決方案的最佳解決方案是什麼? 我可以用一個獨特的方法創建一個ParserFactory服務:
public Parser create(File file);
?
任何意見是值得歡迎的,
感謝有關Iterable的提示。 – 2011-08-03 10:10:21