GWT使用界面而不是小部件

GWT使用界面而不是小部件,gwt,Gwt,在对小部件的定义中,什么是更好的实践,以及为什么使用小部件本身或“更高”类型,例如,这是更好的实践 1) 按钮myButton; 或 2) 我的按钮;(稍后再设置一个按钮) 谢谢您的回答。使用“更高级”类型或接口通常是个好主意。通过正确地执行此操作,您可以隐藏实施细节。使用对象的代码将其视为更高类型的代码,而实际上隐藏在对象后面的内容并不重要。这很好,因为您可以轻松地更改对象的实现,而不会破坏任何东西 例如,在应用程序中定义面板时,应使用面板类而不是其实现,例如水平面板或垂直面板: Panel

在对小部件的定义中,什么是更好的实践,以及为什么使用小部件本身或“更高”类型,例如,这是更好的实践

1) 按钮myButton; 或 2) 我的按钮;(稍后再设置一个按钮)


谢谢您的回答。

使用“更高级”类型或接口通常是个好主意。通过正确地执行此操作,您可以隐藏实施细节。使用对象的代码将其视为更高类型的代码,而实际上隐藏在对象后面的内容并不重要。这很好,因为您可以轻松地更改对象的实现,而不会破坏任何东西

例如,在应用程序中定义面板时,应使用
面板
类而不是其实现,例如
水平面板
垂直面板

Panel myPanel; 
然后您可以创建它的正确实现,例如
HorizontalPanel

myPanel = new HorizontalPanel();
如果随后决定将
myPanel
更改为
VerticalPanel
,则不必更改使用
myPanel
的代码中的任何内容。一切都会好起来的

但是,您必须记住,您只能使用
面板
类中提供的方法。无法访问在水平面板中定义的其他方法。这就是你在选择小部件类型时应该记住的。您的小部件应该是提供您想要使用的方法的类型

在您的示例中,使用
HasText
而不是
按钮
可能不是一个好主意,因为
HasText
只有设置和获取文本的方法,您可能还想访问
按钮
中可用的
addClickHandler
方法以及其他一些方法


总之,使用“更高类型”是很好的,但它们不应该“太高”而没有用处。

答案在于模型视图演示器模式,该模式是在去年Google IO中引入的。还有一个官方教程/文档-和。这里还有一些问题可以回答这个主题:)

对您的问题的快速回答(一旦您熟悉MVP,这将更有意义):使用演示者中的接口及其在视图中的实现:),这样您的演示者就不会注意到您实际使用的底层实现/小部件(它是一个
按钮
?还是一个
标签
?没关系,它们都实现了
HasText