我正在尝试应用工厂模式来创建要在协议堆栈上使用的请求 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 接口下适应它。有没有更明智的方法来做到这一点?