我们有一个具有标准功能的产品,我们的客户也可以根据他们的要求定制产品。但目前他们对核心产品代码进行了更改。我想知道可用于使 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”类来覆盖行为。然而,这种方法仍然不是那么优雅,并且使产品代码更加混乱,这些定制点。
有哪些不同的方法或框架可以更优雅、更有效地完成这些事情?