ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

デリゲートとインターフェースのどっちを使えばいいのぉ?

C#/VB.NETネタです。

製作中のソフト「鬼方程式」で収録問題が全て配列にある訳ですよ。
その全問題から一部をランダムに抜き出して出題する処理を行う訳ですよ。
そこの選別処理を変更できるように、ポリモーフィズム化しようとした訳ですよ。

だから実行するメソッドを引数に渡せば良いんでしょうけど、
メソッドを引数に渡したいだけならデリゲートかなと思ったんです。
しかし、直感的に機能を作ろうとしたらインターフェースの方が良いのかなぁとも思ったりして…。

メソッドを変数に入れたい時は
"デリゲート"と"インターフェース"のどっちがいいの???

普通はデリゲートでいいと思います。
しかし、この場合インターフェースの方が思想に合っている気がしたのでインターフェースにしたんですよ。

デリゲートはメソッドをフィールド化して、
参照を可変的にして、間接的に呼び出す機能です。

対してインターフェースはポリモーフィズムの一種で、
それを実装したクラスのメソッドを同じ型で呼び出せるようにする機能です。

こう見ると全然用途が違いますね。

ソフト「鬼方程式」の件は参照がどうこうじゃないので、インターフェースにした訳です。

そもそもデリゲートにしてしまうと複数メソッドを設定できるから、もうメチャクチャですね。

かと言ってインターフェースを使うのも
メソッド毎にいちいちクラスを作って無駄な様なそうでない様な…。
インターフェースも変ですね。

tag:

コメント

コメントの投稿

トラックバック

トラックバック URL
http://cyberboy6.blog.fc2.com/tb.php/149-d9d4d0db
この記事にトラックバックする(FC2ブログユーザー)

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。