多态对象层次结构的生成器模式:Java 是否可能?
我有一个接口的层次结构,实现.我想使用不可变对象,因此我想设计方便地构造这些对象的类。但是,我有很多接口,我不想在每种类型的子生成器中重复构建s的代码。Child
Parent
Builder
Child
Parent
因此,假设以下定义:
public interface Parent {
public Long getParentProperty();
}
public interface Child1 extends Parent {
public Integer getChild1Property();
}
public interface Child2 extends Parent {
public String getChild2PropertyA();
public Object getChild2PropertyB();
}
如何有效地实现构建器和?它们应支持如下操作:Child1Builder
Child2Builder
Child1 child1 = Child1Builder.newChild1().withChild1Property(5).withParentProperty(10L);
和
Child2 child2 = Child2Builder.newChild2().withChild2PropertyA("Hello").withParentProperty(10L).withChild2PropertyB(new Object());
我不想为每个儿童构建器实现一个特殊情况。withParentProperty
已编辑以添加第二个属性,以阐明这不能使用简单的泛型完成。我不是在寻找一种组合的方法,我正在寻找一种方法来实现一个系统,该系统不会重复为每个子类构建父类的工作。Child2
Child1
Child2
Builder
感谢您的任何帮助!