10 Stimmen

Implementierung von C#-ähnlichen Ereignissen in Android/Java

Ich bin es gewohnt, in C# zu programmieren, und eine Sache, die ich an Java vermisse, ist, dass es nicht die netten eingebauten Ereignisbehandlungsfunktionen von C# zu haben scheint:

// 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
    }
}

Was ist der beste Weg, um etwas ähnliches und leichtgewichtig in Java/Android zu erhalten, die die Fähigkeit hat, mehrere Ereignis-Clients zu abonnieren/abzubestellen und alle abonnierten Clients auf einmal aufzurufen?

7voto

Sie sollten sich mit dem Konzept der Listener in Java befassen. Ich fand einen sehr guten Artikel mit dem Titel "C# aus der Sicht eines Java-Entwicklers", die Sie vielleicht wollen, um heraus zu überprüfen.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X