设计考虑在软件产品中具有用户退出

时间:2013-06-06 04:51:55

标签: java java-ee design-patterns aspectj

我们开发产品,这些产品的业务逻辑实现为EJB。想法是提供用户出口(用户可以覆盖默认行为的扩展点)。它应该是产品开发中的常见问题,但我没有看到任何设计模式或抽象机制来支持用Java编写的业务逻辑的覆盖。

用户出口可以是重写的Bean类或groovy脚本。是否有任何设计模式或设计考虑因素来开发可以使用某些Java类或脚本覆盖EJB的产品?

可以使用AspectJ来动态决定是否应该使用默认实现,还是应该使用用户特定实现中的方法(覆盖用户退出代码)?

2 个答案:

答案 0 :(得分:0)

基于您的评论,我建议使用策略模式来实现可插拔逻辑算法。

然后使用像Spring这样的IOC容器来连接类。

允许用户/客户端在必要时使用自己的配置覆盖此配置。因此,任何感兴趣的人都可以简单地实现您的界面并覆盖配置,以便应用程序将使用该数据。

EJB本身现在具有依赖注入,因此您可能也想查看它。如果这些规定足够,您可能根本不需要弹簧连接您的应用程序。不幸的是,我不熟悉他们,知道自定义配置是否可行。

答案 1 :(得分:0)

面向方面编程是最佳选择。使用Spring 3或Plain AspectJ的AOP使用户可以覆盖现有功能。

有关详细信息,请参阅行动手册中的AspectJ。

希望它对某人有用。