哪一个有利于提高性能?

时间:2014-03-14 06:13:34

标签: java button mvvm zk

我们使用 @Command 方法触发任何方法,但我们使用 @NoifyChange 方法来反映类变量。 但是,我们使用

取代 @NotifyChange
BindUtils.postNotifyChange(null, null, this.class, "*");

因此哪种陈述有利于提高绩效。

2 个答案:

答案 0 :(得分:4)

实际上,BindUtils可能比@NotifyChanged更强大 如果你要以同样的方式使用它,我认为不会有很大的性能差异。 唯一的区别是@NotifyChange仅适用于setter和命令,并且可以从每个方法调用BindUtils

现在,何时会有差异?
假设你有一个列表,你得到了这个:

public List<User> getUsers() {
    return users;
}

假设我们在每个用户旁边都有按钮,按钮会触发一个更改该用户的命令(比如阻止该用户) 我们可以做的是将@notifyChanged("users")置于zk中,这将意味着getUsers();

如果我们使用BindUtils,我们可以执行以下操作:

BindUtils.postNotifyChanged(null,null,user,"*");

BindUtils.postNotifyCHanged(null,null,user,"blocked");

即使我们的VM中没有针对该用户的getter,仍然会执行该用户,并且只有整个列表中的该用户才会更新。 使用第一个命令刷新所有数据,第二个命令仅更新阻止。 现在第二个并不总是可能的,因为可能你不知道哪个字段或所有字段都被更新但仍然更新1个用户而不是获得所有x个用户。

答案 1 :(得分:0)

在我把这个问题放在这里之前看看:

Is it possible use @NotifyChange instead of BindUtils.postNotifyChange?

我个人建议使用特定变量而不是&#34; *&#34;而且表现不佳BindUtils.postNotifyChange(null, null, this.class, "*");

BindUtils@NotifyChange之间的基本区别:

BindUtils只占用一个属性,而@NotifyChange一次只占用多个属性。