设计模式以处理特定于用户的版本显示

时间:2011-06-08 16:48:21

标签: java user-interface design-patterns gwt

我一直在寻找这种模式一段时间,但仍然没有很好地表达这种方式。

考虑一个需要根据版本显示对象属性的GUI设计,这些版本指定哪些属性对客户端有意义。 (说客户端有支持版本的详细信息)

GUI布局需要根据此对象的版本进行更改。例如,对于某些版本,我们希望显示其他菜单等。对于某些人,我们希望更改属性的顺序等。

对于上述条件,是否有任何模式定义了如何表示类?

目前我们的方法是检查这些版本,但它失控,所以我正在寻找一个解决方案,允许我们共享公共代码,并保持版本特定代码分开,以便我们可以保持它。并对版本本地化进行了更改。

2 个答案:

答案 0 :(得分:1)

我会将共享功能提取到另一个对象中,并将它们组合到您的实际类中。

例如,如果类是A,则执行CommonA并使​​A_1包含CommonA对象,A_2也包含CommonA对象。这里A_1和A_2代表版本1和版本2.

A_1和A_2都公开了相同的方法,并在内部委托给共享类。

通过这种方式,您不会复制并在A_1,A_2等内部对您的版本特定内容进行本地化。

答案 1 :(得分:0)

也许您正在寻找延迟绑定:http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html。 使用延迟绑定,您可以使用特定于客户端的类替换您的类。或者你可以更换你的Ginjector,这样你就可以在那里组织替换,而不是在gwt.xml中。