最近学习了justin的观察者模式, 感觉似乎了解了.net的event模型和java的interface模型的区别。
个人理解的是,.net的event模型是针对方法的接口(定义了其他类的方法如果需要被该类的事件触发的话那些方法必须满足的规则),java的是针对类的接口(定义了其他类的方法如果需要该类的方法被触发的话那些类必须满足的规则)。下面的例子能显示这两种的区别:
java的:
1
package event;
2
3
2
3
1
package event;
2
3
}
2
3
1
package event;
2
3
2
3
1
package event;
2
3
2
3
1
Pane pane = new Pane();
2
pane.button.raiseClick();
2
c#的:
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
namespace EventCS
6
2
3
4
5
6
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
namespace EventCS
6
2
3
4
5
6
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
namespace EventCS
6
}
2
3
4
5
6
1
Pane pane = new Pane();
2
pane.button.RaiseClick();
2
vb.net的:
1
Imports System
2
Imports System.Collections.Generic
3
Imports System.Text
4
5
End Namespace
2
3
4
5
1
Imports System
2
Imports System.Collections.Generic
3
Imports System.Text
4
5
2
3
4
5
1
Imports System
2
Imports System.Collections.Generic
3
Imports System.Text
4
5
End Namespace
2
3
4
5
1
Dim pane As Pane = New Pane()
2
pane.button.RaiseClick()
2