BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ランタイムコード生成でのダックタイピング

ランタイムコード生成でのダックタイピング

ダックタイピングは、C#のような静的に型付けされた言語で使用される作法である。しかし通常は単調でつまらないリフレクションコードを必要とする。そんな技法の利点を突きつけられるとどっちみちそれに頼り、痛みを少なくさせる方法を開発している人もいる。

ダックタイピングの背景にある概念は、実行時バインディングとしても知られているが、かなり単純である。機能が呼び出すと見込まれているオブジェクトがす べてのメソッドに応答すると、そのオブジェクトはその機能に受け渡される。静的型付けに詳しい人はこう言うかもしれない。「それは、ただのインターフェイ スじゃないのですか?」そうだし、そうではないとも言える。概念的に見るとインターフェイスのようだが、静的に定義される必要はない。それを使用している デベロッパによってクラスが作成されない場合、これは大事なことである。

常時利用可能な1つの選択肢は、アダプタークラスを作成することである。アダプターはインターフェイスを実装し、メソッドコールをリアルオブジェクトへ受 け渡す。残念なことに、こうしたアダプタークラスのビルドは退屈である。つまらない作業を緩和し、さらに柔軟にするために、デベロッパはランタイムコード の生成に頼り始めている。

以下に挙げるオープンソースプロジェクトで、この例を参照することができる。

これらは結局、応急処置になる可能性がある。すでにVisual Basicは、Option Strict Offによるダックタイピングを備えている。動的に暗黙指定されたインターフェイスは、VB 9向けに検討された。VB 10で見られる削減はなかったけれど。その一方で、C#は動的キーワード(リンク)を追加し、Option Strict Offと同様の効果を生じさせることを検討している。

原文はこちらです:http://www.infoq.com/news/2008/07/DuckTyping-CSharp

この記事に星をつける

おすすめ度
スタイル

BT