我习惯于使用C#编程,而我想念Java的一件事是它似乎没有C#的内置事件处理功能:

// define event signature
public delegate void SomeEventHandler();

class SomeEventGenerator {
    // define subscribable event property
    public event SomeEventHandler SomeEvent;

    protected void OnSomeEvent() {
        if (SomeEvent != null) {
            SomeEvent();
        }
    }
}

class SomeEventClient {
    public SomeEventClient(SomeEventGenerator eg) {
        // subscribe
        eg.SomeEvent += new SomeEventHandler(eg_SomeEvent);
        // do some stuff
        // unsubscribe
        eg.SomeEvent -= new SomeEventHandler(eg_SomeEvent);
    }

    private void eg_SomeEvent() {
        // handle event
    }
}

在Java/Android中获得具有相似性和轻量级功能,能够同时订阅/取消订阅多个事件客户端并立即调用所有已订阅客户端的最佳方法是什么?

最佳答案

您可能想研究一下Java中的监听器的概念。我找到了一篇很好的文章,“从Java开发人员的角度看C#”,您可能想看看。

http://www.25hoursaday.com/CsharpVsJava.html

10-05 21:26