是否可以更改运行时使用的包?

时间:2017-05-11 22:38:35

标签: java javafx packages

我正在扩展一个大型应用程序,以允许组织内其他部门自定义使用。

每个部门都有不同的需求,但可能会分享一些相同的课程,但必须修改其他课程以满足部门的特定需求。

我想要做的是为每个部门创建一个新的包,并在这些包下移动相关的类,从而保持它们分离,但都包含在同一个整体应用程序中。

现在,我的包结构与此类似:

[src]
    - Main.java
    [view]
        - D1 FXMLs
    [controllers]
        - D1 Controllers
    [model]
        -D1 Classes

我希望做的是重组项目以包含其他部门,其中许多部门使用与D1(部门1)相同的类名。

[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包中调用一个类,并让 类正确地分配这些包?

1 个答案:

答案 0 :(得分:0)

虽然可能不是最优雅的解决方案,但我使用了一种简单的方法(因为我的技能尚未达到我理解工厂的程度)。

我刚刚实现了我对所提问题的编辑,调用了不同的包RootLayoutController,具体取决于所需的包。