2011-02-03 55 views
1

我的申請將輸出的曲線圖,針對佈局的Java尖端由用戶來定義。自定義佈局類應該實現由我定義的接口。 我該怎麼做?有一個特殊的文件夾,我尋找佈局類?讓用戶將類名作爲參數傳遞給應用程序?爲插件狀架構

任何幫助將不勝感激。

+0

什麼樣的應用程序? Web應用程序,JWS,獨立的Swing應用程序被僞裝成本地桌面應用程序? – 2011-02-03 18:34:50

回答

3

同時使用多種方法通常在這裏給出了最好的結果。不同的用戶可以選擇不同的方式來配置你的應用例如:

  • 用戶可以插入插件的默認目錄。甚至還有一個目錄列表,其中可能包含應用程序文件夾的一些子目錄,某些系統範圍的目錄在依賴於平臺的「應用程序數據」位置,某些用戶本地目錄。
  • 一個配置文件,帶有一些選項來控制插件的搜索和選擇。
  • 指定搜索插件,像java -Dorg.something.appname.plugindirs=plugindir1;plugindir2目錄列表的Java系統屬性。
  • 一個特殊的命令行選項或Java系統屬性來選擇特定的插件,可能提供絕對路徑或只是一個名字通過上述方法指定的目錄中查找。

我認爲更多的方法您的應用程序提供,就更好了。當然,它應該有某種默認設置,這樣用戶不必爲所有不想要的東西而煩惱。另外,使用這些選項的順序應該是明智的:例如,用戶插件覆蓋系統插件是非常合理的,而不是相反。

+0

你能否推薦一些以這種方式工作的程序例子,並且做得很好?除了可能Emacs之外,我很難想到任何不僅僅是選擇其中一種方法並且做對了。 – 2011-02-03 19:06:37

0

通過工具包年使用的模型了,AWT,Swing的,等要傳遞的佈局作爲參數傳遞給您的API。假設你在命令行被調用:

java -jar yourapp.jar;theirintf.jar yourapp org.example.theirintf 

不要試圖與特殊文件夾,並約定過於神奇。只要把它作爲一個參數。如果用戶選擇不創建他們自己的一個,請有一個默認值 - 您的應用程序應該可以自己使用。