「覚え間違い」を教えてください!

現役S.E.です。イベントドリブンとオブジェクト指向のことを説明する必要に迫られています。しかし、私自身知識が混乱してしまい、説明に自信がないので教えてください。

オブジェクト指向は、構造化プログラミングに変わって登場してきた考え方ですよね。クラスを設計してイベントやプロパティ、メソッドを実装してインスタンスを派生していくプログラミング方法であると認識しています。

それから、イベントドリブンはマウスでのクリックとかキーの押下などのイベントに応じて、様々なアクションを起こすという考え方だと認識しています。

それで、ちょっと考えるとイベントドリブンを実現するためには、アクションやメソッドがないと動かせないと思うので、オブジェクト指向でないと実現できないと思うのですが、構造化プログラミングなのにイベントドリブンで動かすみたいなケースってあるのでしょうか?

イベントドリブンという考え方を、オブジェクト指向と組み合わせて開設してしまっていいのかどうかがよく分からなくなってしまいました。
どんな風に解説したらいいか、アドバイス頂ければ幸いです。

A 回答 (3件)

自分の回答を見直してみると分かりにくかったので補足します。



オブジェクト...
発想の出発点はデータと操作を一まとめにすることですが、さらに抽象化を進めて、とにかく何らかの機能を持ち、外部との交流手法(インターフェース)を備えたものですね。
つまり、自動車もオブジェクトです。また自動車のエンジンもオブジェクトです。

イベントドブリンは、もともとあった割り込みという概念をさらに進めて、イベントをいちいち調べて、処理の実行を行うのではなく、イベントに対する処理をあらかじめ用意しておく。
つまりイベント→処理という流れを基本とする考え方ですよね。

もちろんこの処理に対してオブジェクトを使うことはかまいませんけど、普通の関数でもいいわけですね。

私の言いたかったことはそういうことです。
    • good
    • 0
この回答へのお礼

ありがとうございます! 現役S.E. とは言っても、Windowsから入った者なので、過去の経緯などはまだまだ勉強中の身です。
ご丁寧な解説ありがとうございました。全く別物だったのですね。

では、Windows言語である C# などは、「イベントドリブン」を採用した「オブジェクト指向言語」であるといった考え方でいいのですね?

どうもありがとうございました!

お礼日時:2002/09/26 16:32

そうですね。

JAVA、C++等では各イベントもクラスから派生させたインスタンスに対してメソッドをオーバーライドして使用するために同一の物と考えてしまいますね。
でも言語によってはそのイベントが発生したら、プログラムが動き出すという言語が色々と存在します。VBなんかもオブジェクト指向ですがコードの中でクラス、インスタンスという意識はしないですね。ましてはイベントドリブン型COBOLなんて製品も見たことがあります(このボタンをクリックするとそのボタンに定義されたCOBOLのコードが動き出す。オブジェクトの定義は言語内ではされずCOBOLの中ではFILE SECTIONがあり内部ファイルがあるだけで外部ファイルとのアサインが定義情報として実行形式内に保存されている)。
イベントドリブンは単にバッチ処理とかコマンドライン実行とかの処理方式の1つであり、オブジェクト指向な言語ではイベントもクラスとして定義されていると言うことではないでしょうか?
正しい講習を受けたわけではなく現場で色々な言語を触っているのでそれに伴った知識です。定義として合っているかは解りません。
    • good
    • 0
この回答へのお礼

ありがとうございます。やはり、イベントドリブンでもいろいろな言語があるのですね。
わかりやすい解説ありがとうございました!

私も、まだまだ勉強致します。(T^T

お礼日時:2002/09/26 16:35

SEの方に申し上げるのは恐縮なのですが、C++が登場する前から、既にUNIX上のX Window SystemなどはCでかかれていましたから、必ずしもそうとはいえないのではないでしょうか。


(C++だってオブジェクト指向としては不完全ですし、、、)

そもそもオブジェクト指向は、データを一まとめにして、操作関数を用意するという考え方をさらに進め、「データとその操作方法を一まとめにする」という発想がその元にあると思うのですが。
だから、イベントドブリンとはかなり概念が異なるという気がしますが、、、
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報