Java events vs C# - новое в Java
Я новичок в мире Явы. Я иду от c#. Я пытаюсь настроить пользовательское событие. Вот как я сделал бы это в C#
class A
{
public EventHandler Changed;
public void FunctionA()
{
if(Change != null)
Changed(this, null); //fire the event!
}
}
class B
{
private A instanceOfA = new A();
public void FunctionB()
{
A.Changed+= new EventHandler(onAChanged); //subscribe to event
}
public void onAChanged(object sender, EventArgs args)
{
//handle the event
}
}
Теперь я пытаюсь прочитать о пользовательских событиях java, но все примеры, которые я нахожу, показывают, что мне нужно сделать 2 пользовательских класса ( http://www.exampledepot.com/egs/java.util/custevent.html )
Я что-то упустил? похоже, что должен быть более простой способ делать события, чем руководство выше.
3 ответов:
В Java нет понятия делегата и, следовательно, нет стиля c# "события". Чтобы достичь подобной системы, вам нужно использовать шаблон наблюдателя, как показано в ссылке, которую вы предоставили.
Как уже было сказано, в java события являются шаблоном, в C# они являются функцией языка. Ссылка, которую вы предоставили, - это правильный способ работы с событиями.
"удивительно", нет?
В языке Java нет события. Вы должны использовать шаблон, подобный тому, который вы предоставили для обработки событий.
Comments