我正在尝试应用工厂模式来创建在协议堆栈上使用的请求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接口下使用它。有没有更合理的方法呢?
答案 0 :(得分:0)
您可能会更多地了解您的设计要求:哪一个具有更多不同的变体或实现。把它变成工厂然后离开另一个工厂。在这种情况下,它看起来像我可以使用工厂创建详细信息。 (如果请求没有以多种方式实施。)