例如,我需要构建具有元素的对象WebPage。
class WebPage {
List<Element> elements;
}
好的,但是我认为Element可以是<input>
或<select>
。
这样,我应该创建界面
interface Element{
RenderedElement render();
}
并基于它实现Input和Select类。
class Input implements Element {
String name;
String value;
RenderedElement render() { ... }
}
class Select implements Element {
String name;
List<Option> options;
RenderedElement render() { ... }
}
好吧,没问题,我什至可以从WebPage绘制任何元素,因为我有render()
方法。.
但是,如果我想将此WebPage存储在DB中怎么办?我不知道此列表中每个元素的真实类型,我应该使用魔术来检测它。 您能告诉我在这种情况下需要使用的设计模式吗?
答案 0 :(得分:0)
您可以使用JPA联接表inheritance strategy,它将为相似的属性创建一个表,并为类创建特定的表,甚至,如果您想要更简单的策略,请在其{{3}中使用jackson }并将WebPage对象存储在JSON文件中。