Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于向用户处理特定于版本的显示的设计模式_Java_User Interface_Design Patterns_Gwt - Fatal编程技术网

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

Java 用于向用户处理特定于版本的显示的设计模式,java,user-interface,design-patterns,gwt,Java,User Interface,Design Patterns,Gwt,我一直在寻找这个模式有一段时间了,但仍然没有得到很好的方式来表示这一点 考虑一个GUI设计,它需要基于版本显示对象的属性,这些版本指定哪些属性对客户端有意义。(假设客户端具有受支持版本的详细信息) GUI布局需要根据此对象的版本进行更改。例如,对于某些版本,我们希望显示其他菜单等。对于某些版本,我们希望更改属性的顺序等 对于上述条件,是否存在定义如何表示类的模式 目前我们的做法是检查这些代码的版本控制,但它会失控,因此我正在寻找一种解决方案,它允许我们共享公共代码,并将特定于版本的代码分开,以便

我一直在寻找这个模式有一段时间了,但仍然没有得到很好的方式来表示这一点

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

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

对于上述条件,是否存在定义如何表示类的模式


目前我们的做法是检查这些代码的版本控制,但它会失控,因此我正在寻找一种解决方案,它允许我们共享公共代码,并将特定于版本的代码分开,以便我们能够维护它。以及对本地化版本的更改。

我会将共享功能提取到另一个对象中,并在实际类中进行组合

例如,如果类是A,那么您将执行CommonA,并使一个_1包含CommonA的对象,而一个_2也包含CommonA的对象。这里,A_1和A_2代表版本1和版本2

_1和_2都公开相同的方法,并在内部委托给共享类


这样,您就不会复制,而是将特定于版本的内容本地化到A_1、A_2等中。

也许您正在寻找延迟绑定:。
通过延迟绑定,您可以用特定于客户端的类替换您的类。或者,您可以替换Ginject,这样您就可以在gwt.xml中而不是在gwt.xml中组织重播。

谢谢您提供的详细信息。我最终决定将特定于版本的代码委托给另一个类并处理面板的加载