0

我正在尝试应用工厂模式来创建要在协议堆栈上使用的请求 bean。现在请求 bean 与其他 bean 一起保存属性 - 这也应该是工厂模式的一部分(因为它们因堆栈而异)。

就像是:

public interface Factory {
  public Request createRequest();
}

public interface Request {
  public Details getDetails();
  public void setDetails(Details details);
  ..
}

public interface Details {
  public String getSource();
  public void setSource(String s);
  ..
}

我的第一次尝试也是添加工厂方法Details,但这很快就会成为一种危险——尤其是为工厂传递一些参数。

ClassCastException此外,如果您要从另一个工厂传递“详细信息”实现,setter 会变得有点奇怪,因为它们实际上会抛出 a 。

我的情况的主要原因是我坐在一个相当复杂的第 3 方请求/响应/堆栈实现上,我想在我自己的 bean 接口下适应它。有没有更明智的方法来做到这一点?

4

1 回答 1

0

您可能会更多地研究您的设计要求:哪一个有更多不同的变体或实现。把它变成工厂,然后离开另一个。在这种情况下,我认为可以使用 factory 创建 Details 。(如果请求没有以许多不同的方式实现。)

于 2013-04-29T13:19:34.483 回答