是否可以更改运行时使用的包?
Is it possible to change the package being used at runtime?
我有一个大型应用程序,我正在努力扩展它以允许我组织内的其他部门自定义使用。
每个部门都有不同的需求,但可能会按原样共享一些相同的 class,但必须修改其他部分以满足部门的特定需求。
我想做的是为每个部门创建一个新包,并将相关的 classes 移动到这些包下,从而使它们分开,但都包含在同一个整体应用程序中。
现在,我的包结构是这样的:
[src]
- Main.java
[view]
- D1 FXMLs
[controllers]
- D1 Controllers
[model]
-D1 Classes
我希望做的是重组项目以包括其他部门,其中许多使用与 D1(部门 1)相同的 class 名称。
[src]
- Main.java
[D1]
[view]
- D1 FXMLs
[controllers]
- D1 Controllers
[model]
-D1 Classes
[D2]
[view]
- D2 FXMLs
[controllers]
- D2 Controllers
[model]
- D2 Classes
...etc
我需要 Main.java
根据 运行 时间的变量值来确定操作哪个包。
这甚至可能吗?还是我仍然需要为每个部门创建完全独立的项目并让 "Loader" 程序确定要 运行 哪个?
编辑: 也许我自己偶然发现了答案。让 Main.java
在 D1 或 D2 包中调用 class 并让 that class 正确分配包是否可行?
虽然可能不是最优雅的解决方案,但我使用了一种简单的方法(因为我的技能还没有达到我理解工厂的程度)。
我刚刚实施了我对问题建议的编辑,根据需要哪个包调用不同包的 RootLayoutController
。
我有一个大型应用程序,我正在努力扩展它以允许我组织内的其他部门自定义使用。
每个部门都有不同的需求,但可能会按原样共享一些相同的 class,但必须修改其他部分以满足部门的特定需求。
我想做的是为每个部门创建一个新包,并将相关的 classes 移动到这些包下,从而使它们分开,但都包含在同一个整体应用程序中。
现在,我的包结构是这样的:
[src]
- Main.java
[view]
- D1 FXMLs
[controllers]
- D1 Controllers
[model]
-D1 Classes
我希望做的是重组项目以包括其他部门,其中许多使用与 D1(部门 1)相同的 class 名称。
[src]
- Main.java
[D1]
[view]
- D1 FXMLs
[controllers]
- D1 Controllers
[model]
-D1 Classes
[D2]
[view]
- D2 FXMLs
[controllers]
- D2 Controllers
[model]
- D2 Classes
...etc
我需要 Main.java
根据 运行 时间的变量值来确定操作哪个包。
这甚至可能吗?还是我仍然需要为每个部门创建完全独立的项目并让 "Loader" 程序确定要 运行 哪个?
编辑: 也许我自己偶然发现了答案。让 Main.java
在 D1 或 D2 包中调用 class 并让 that class 正确分配包是否可行?
虽然可能不是最优雅的解决方案,但我使用了一种简单的方法(因为我的技能还没有达到我理解工厂的程度)。
我刚刚实施了我对问题建议的编辑,根据需要哪个包调用不同包的 RootLayoutController
。