类似请求响应的设计模式

时间:2013-11-20 17:09:48

标签: design-patterns request response

我需要设计一个消耗请求并产生响应的服务。在结构方面,我希望响应基本上回应请求并且还包括状态。

e.g。

请求:

class Request {
String x;
String y;
}

class Response {
String x;
Status x_s;
String y;
Status y_s;
}

是否有人知道任何描述这种情况的模式?一种解决方案可能是使用相同的对象来表示请求和响应,另外还有一个封装了值和状态的对象,例如。

class Attr {
 Status status;
 String value;
}

class RequestResponse {
Attr x;
Attr y;
}
  • 虽然这感觉有点笨拙。例如。 RequestResponse.attr.status仅适用于响应。
  • 注意,就这个impl /用法而言,关于请求/响应的结构是相同的,内容实际上会有所不同。我正在尝试实施语言翻译服务。

感谢。

1 个答案:

答案 0 :(得分:3)

为什么不

public class Response {
    private Request request; // Has-a relationship
    private Status x_s;
    private Status y_s;
}

除了任何设计优点外,这还有一个额外的好处,就是“重用”已经为请求分配的内存。它还允许您在生成/处理响应时使用Request类中定义的功能,如Request.getRequestType()或类似功能。

另一个解决方案是让Response从请求继承(is-a relationship),但组合方法通常更好