使用 Google Web Toolkit 和 Eclipse Galileo 进行高性能 Web 开发
2009-12-13 00:00:00 来源:WEB开发网在面向对象的开发中,有一种实践很常见:抽象出一个可能拥有多个实现的接口并编写代码以使用该接口,从而使其可以重复利用。这是另一种有用的工程抽象方法,但该方法增加了额外的查询和方法分配,损害了性能。让我们看看 GWT 编译器是如何提供帮助的。您可以使用 Eclipse 的重构工具从清单 3 中的 Person 类轻松提取一个接口。让我们调用一个 Thing,如清单 8 所示。
清单 8. 使用 Thing 接口重构public interface Thing {
String getName();
}
public class Person implements Thing {
final String firstName;
final String lastName;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getName(){
return firstName + " " + lastName;
}
}
现在使用 Person 的客户端代码应该更改为使用 Thing 接口,如清单 9 所示。
清单 9. 重构的客户端代码Thing user = new Person("GWT", "User");
nameField.setText(user.getName());
编译后的代码发生了哪些修改?我们需要付出性能代价吗?请查看清单 10。
清单 10. 重新编译了的重构代码user = $Person(new Person(), 'GWT', 'User');
$setText_1(nameField, user.firstName + ' ' + user.lastName);
可以看出,根本没有任何修改。如果同时使用两个接口实现,情况又会怎样呢?这种情况如清单 11 所示。
更多精彩
赞助商链接