工厂模式和复杂的豆类

时间:2013-04-29 13:07:01

标签: java design-patterns factory

我正在尝试应用工厂模式来创建在协议堆栈上使用的请求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

我的情况的主要原因是我正坐在一个相当复杂的第三方请求/响应/堆栈实现上,我希望在我自己的bean接口下使用它。有没有更合理的方法呢?

1 个答案:

答案 0 :(得分:0)

您可能会更多地了解您的设计要求:哪一个具有更多不同的变体或实现。把它变成工厂然后离开另一个工厂。在这种情况下,它看起来像我可以使用工厂创建详细信息。 (如果请求没有以多种方式实施。)