下面描述的问题涉及库存跟踪Java程序。存在多个类别的库存项目,并且无法预先确定要跟踪的目标类别的哪些属性。以两课为例:
InventoryClassOne {
String name;
Double price
}
InventoryClassTwo {
StockStatus status;
Long Quantity
}.
存储数据没问题,我可以定义一个
class InventoryProperty<T> {
T value;
}
和
class InventoryClass {
Map<String, InventoryProperty<?>> inventoryPropertyMap;
}
将使用Wicket框架开发UI。我想为应用程序的管理员提供一种方法,即在每个InventoryClass的基础上添加新的InventoryClasses并定义数据的布局方式(表格,列表等等)。有没有人曾经解决过这类问题?有哪些设计模式可用于实现此目的。我甚至不知道要在Google中输入什么词来获得如何解决这个问题的想法。
答案 0 :(得分:1)
尽管我喜欢Wicket,但我认为这不是这种元网站的最佳选择。
但如果我绝对不得不在Wicket中这样做,那就是我要做的事情:
Fragment
。ListView
,但即使是简单的转发器也会这样做),对于Field-&gt; Fragment映射中的每个条目,都会添加转发器指着田野的模特。您可能需要稍微调整一下,特别是对于表格,但这是基本的想法。
然而,我必须重复这一点,你几乎失去了Wicket的大多数优势,更糟糕的是,你必须付出额外的努力来绕过(或反对)Wicket。它似乎不值得。