OSを作ろうpart5

このエントリーをはてなブックマークに追加
857わたもち
>>856さん
書き方が悪かったです。お手数かけました。
イベントの処理を書く部分は、
MFCではたぶんオーバーライドで、
Javaではインタフェースを使った委譲モデルで、
C#ではデリゲーション(メソッドオブジェクトみたいなものっぽい)を使った委譲モデル
というのは知ってるのですが、
困っているのは実際イベントキューからどのようにイベントを伝えるかです。
ComponentEventはそのまま発生元がイベントの伝え先なのですが、
MouseEventやKeyEventはどこへ伝えようかなと、なかなか良い方法が考えつきません。

ちなみに私はC#のデリゲーションは嫌いだったり。
class MainFrame() extends Frame {
MainFrame() {
addMouseListener(new MouseEventHandler());
addMouseMotionListener(new MouseMotionEventHandler());
}
class MouseEventHandler() extends MouseAdapter{
}
class MouseMotionEventHandler() extends MouseMotionAdapter{
}
}

こんな感じでイベントごとにグループわけできないからC#でたくさんイベントハンドラ書くと意味不明になりますw
構造体とかデリゲーションとかいらない機能多すぎです。C#ではきちんとした内部クラスが書けません。
MouseEventHandlerの中から直接MainFrameのフィールドにアクセスしたりできないのです。
言語の好みは人それぞれなんですけどね。