【问题标题】:Add additinal functionality to existing methods向现有方法添加附加功能
【发布时间】:2016-12-02 17:23:12
【问题描述】:

我在 Servlet 和 JSP 中有一个 Web 应用程序。现在我需要为其中的几个服务方法添加一些额外的功能。需要这些更改的服务方法来自不同的 servlet。

附加功能如下。

  1. 在其核心功能之前验证状态。
  2. 通知相应用户成功完成该过程。

如何以最小的开销将这些功能注入现有代码? 我认为 Spring 中的 AOP 在这里可以提供帮助,但我不能在现有应用程序中使用 Spring 来实现此功能。

也尝试使用装饰器模式,但我不能,因为每个服务类都包含多个方法,它们也没有通用接口。

谁能告诉我如何以更好的方式处理这种变化。

【问题讨论】:

  • 如果你不能使用Spring而且它只是一个普通的Servlet项目,也许你可以写一个Filter?您可以在 web.xml 中设置这些,这意味着您有机会围绕每个请求运行一些代码。见oracle.com/technetwork/java/filters-137243.html

标签: java servlets aop decorator


【解决方案1】:

也尝试使用装饰器模式,但我不能作为每个服务 类包含多个方法,也没有通用接口 他们。

正如您所说的没有通用接口您可以使用适配器模式,这在您遇到服务接口问题时最适合。基本上,适配器有助于与没有通用接口的两个服务进行交互。您可以创建一个适配器(层),通过调用现有服务来处理附加功能(即验证状态和通知相应用户等)。

以下是适配器模式的维基百科定义:

适配器模式是一种软件设计模式(也称为 Wrapper,与装饰器模式共享的替代命名) 允许将现有类的接口用作另一个 界面。它通常用于使现有的类与其他类一起工作 无需修改其源代码。

【讨论】:

    猜你喜欢
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多