Java技巧,适用于类似插件的架构

时间:2011-02-03 18:09:01

标签: java architecture jar

我的应用程序将输出一个图形,其布局由用户定义。自定义布局类应该实现我定义的接口。 我该怎么做?有一个特殊的文件夹,我在哪里寻找布局类?让用户将类名作为参数传递给应用程序吗?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

同时使用的多种方法通常会在此处获得最佳结果。不同的用户可以选择不同的方式来配置您的应用程例如:

  • 用户可以放置插件的默认目录。甚至是一个目录列表,其中可能包括应用程序文件夹的某个子目录,依赖于平台的“应用程序数据”位置的某个系统范围的目录,一些用户本地目录。
  • 配置文件,包含一些控制插件搜索和选择的选项。
  • 一个Java系统属性,它指定要搜索插件的目录列表,例如java -Dorg.something.appname.plugindirs=plugindir1;plugindir2
  • 用于选择特定插件的特殊命令行选项或Java系统属性,可能提供绝对路径或仅在上述方法指定的目录中查找名称。

我认为应用程序提供的方式越多越好。当然,它应该具有某种默认设置,因此如果用户不愿意,用户将不必费心去处理所有这些内容。此外,使用这些选项的顺序应该是明智的:例如,用户插件覆盖系统插件是完全合理的,而不是相反。

答案 1 :(得分:0)

工具包年,AWT,Swing等选择的模型将作为API的参数传递给布局。假设你是从命令行调用的:

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

不要尝试使用特殊文件夹和约定过于神奇。把它作为一个论点。如果用户选择不创建自己的应用程序,请使用默认值 - 您的应用程序应该可以独立使用。