帰りの電車でふと思いついたたとえ話。
COM, C#で定義されているinterfaceは、ものまねで考えるとわかりやすいかも?
多分、こんなたとえがなりたつのでは・・・
ものまねタレントをオブジェクト、レパートリーをinterfaceにたとえる。
で、コロッケさんでかんがえてみる。
コロッケさんの代表的なレパートリー、野口五郎さんと、五木ひろしさん。
とあるものまね番組でコロッケさんが野口五郎さんinterfaceをつかって
野口五郎さんのものまねをしている。
そこに司会者が五木さんのものまねを依頼したところ野口さんから五木ひろしさん
interfaceのcastを使ってはや代わりした。 次にビートたけしさんのものまねを
依頼したができなかった。これを C#の構文で書くと
I野口 = ('コロッケ as I野口);
野口五郎さんの真似
I五木 = (I野口 as I五木);
五木ひろしさんのまね
Iビート = (I五木 as Iビート)
エラー (ものまね不可)
これって、interfaceのなんちゃら性の説明になっている気がします。
また、五木ひろしさんのものまねでも。とコロッケさんの清水アキラさんのそれ
では、その振る舞いがことなっています。
これを C#であらわしみると
class コロッケ :物まね,I五木
{
}
class 清水アキラ :物まね,I五木
{
}
I五木 itsuki;
itsuki = コロッケ as I五木
コロッケの五木ひろしの物まね
ituski = 清水アキラ as I五木
清水アキラの五木ひろしの物まね
これって、interfaceを使った多態の説明になってると思うのですが・・・
0 件のコメント:
コメントを投稿