泽西的模板模式?

时间:2014-07-12 19:12:17

标签: design-patterns jersey

我正在使用Jersey 2.10.1创建RESTful Web服务。我想有一个基类,它将有一个中心位置来创建一些我将在整个应用程序中传播的ID。此基类还将具有try catch块,其中将捕获子类中生成的任何异常。我想知道这个基类是否应该扩展ServletContainer?我正在尝试开发模板模式。我的基类将被调用,然后将调用委托给子类。有没有更好或替代方法这样做?我将不胜感激任何建议或提示。

public class BaseClass extends ServletContainer {

  public Value<Integer> service(URI baseUri, URI requestUri,
                               final HttpServletRequest request,
                                HttpServletResponse response) throws          ServletException,IOException {
        1. GENERATE UNIQUE ID
          try { 
          return webComponent.service(baseUri, requestUri, request, response);
         } catch(Throwable e) {
              //LOG the exception here
           }
    }
}

@Path("/test")
public class Child extends BaseClass {
}

1 个答案:

答案 0 :(得分:0)

您可以创建抽象BaseClass并创建抽象方法generateId。孩子们必须实施它。在BaseClass的service方法中,首先调用generateId(),它将调用每个子项的具体实现。