Android,大听众和性能/可维护性

时间:2014-01-12 13:49:55

标签: android performance maintainability

我有一个非常大的Android聊天应用程序的监听器界面。我还有一个适用于侦听器的适配器,使用空方法。

这是:

public static interface Listener {

    public void connectionStarted(Server server);

    public void onConnected(Server server);

    public void onDisconnected(Server server, DisconnectType type);

    public void onReconnectStarting(Server server, int reconnectAttempt);

    public void onReconnectStarted(Server server, int reconnectAttempt);

    public void onReconnectEnded(Server server, int numReconnects);

    public void onReconnectCanceled(Server server);

    public void onRegistered(Server server);

    public void onMessage(Server server, Message msg);

    public void onQueryMessage(Server server, User user, String hostmask, String msg);

    public void joinedChannel(Server server, Channel channel);

    public void partedChannel(Server server, Channel channel);

    public void onNames(Server server, List<String> batch);

    public void onNamesEnd(Server server);

    public void onListStart(Server server);

    public void onList(Server server, ListEntry entry);

    public void onListEnd(Server server);

    public void onIsOn(Server server, List<String> nicks);

    public void onWho(Server server, WhoData data);

    public void onWhoFailed(Server server, String nick);

    public void onWhoIs(Server server, WhoisData data);

    public void onWhoIsFailed(Server server, String nick);

    public void onWhoWas(Server server, WhoWasData data);

    public void onWhoWasFailed(Server server, String nick);

    public void onCTCPVersion(Server server, String nick, String hostmask, String version);

    public void onCTCPPing(Server server, String nick, String hostmask, String ping);

    public void onCTCPTime(Server server, String nick, String hostmask, String time);

    public void onNotice(Server server, String nick, String hostmask, String message);

    public void onNickInUse(Server server, String nick);

    public void myNickChanged(Server server, String oldNick, String newNick, boolean onRegistered);

    public void onSASLAuthenticationStarted(Server server);
}

例如,如果你看一下监听器,它有一个onMessage() - 方法,它被调用了很多(如果用户在很多聊天频道中)。并且这些“无操作”方法调用被重定向到许多完全不相关的侦听器。

我很确定Oracle的JVM足够聪明,可以优化所有这些无操作方法调用,但我不知道Dalvik VM是否属于这种情况。

从性能和可维护性的角度来看,您认为我应该将侦听器重构为更小的接口(例如ConnectionListener,MessageListener,JoinListener等)吗?

0 个答案:

没有答案