0

我们有一个具有标准功能的产品,我们的客户也可以根据他们的要求定制产品。但目前他们对核心产品代码进行了更改。我想知道可用于使 j2EE 应用程序可扩展或可定制的方法。要详细说明这一点,请阅读以下内容:例如:考虑以下课程:

Class A{
    public void doSomething(Object o){
     // standard product functionality goes here.
     // due to client customizations. client code also goes here.
     }
}

在上述课程中,客户已将代码添加到核心产品代码中。理想情况下,不应根据开闭原则修改产品代码。

目前我们不直接允许客户端在方法中添加代码,但提供如下定制点。

Class A{
    public ClassAExtension ext;
    public void doSomething(Object o){
     // standard product functionality goes here.
    // client code goes in doClientCustomizations();
     ext.doClientCustomizations(Object o);
     }
}

所以现在客户端使用“ClassAExtension”类来覆盖行为。然而,这种方法仍然不是那么优雅,并且使产品代码更加混乱,这些定制点。

有哪些不同的方法或框架可以更优雅、更有效地完成这些事情?

4

1 回答 1

0

您应该做的第一件事是通过使用单独的包和部署工件(因此为您的核心提供一个 JAR,为扩展提供一个 JAR),清楚地将作为标准产品的代码和扩展分开。

坚持基本的 Java 机制,例如,您可以在组件中指定挂钩方法,这些方法默认情况下不执行任何操作,但可以被扩展核心组件的自定义组件覆盖。

一个小的旁注:如果不必维护古老的应用程序,就不要再使用术语 J2EE。

于 2015-10-30T11:08:54.563 回答