雑記 - otherwise

最近はDQ10しかやっていないダメ技術者がちまちまと綴る雑記帳

インターフェイスを new する?

結城さんの日記経由で k.inaba さんの記事を読んで。

最近、 .NET しか触っていないから、どうにも JAVA な感覚にならないんですが、それにしても「インターフェイスを new する」って発想はどうなんでしょうか。
個人的に、インターフェイスというものは、「形の定まったあるモノ (object) 同士について、一定の共通項を明示するもの」と捉えているので、「インターフェイスを new する」というのには違和感を感じます。。。

つまり「 interface → class 」という関係( interface ありき)ではなくて、「 class ← interface 」という関係( class ありき)だと思う訳です。(この考え方だと、「 interface をインスタンス化する」という発想にはならない)

……とまぁ、個人的な主張はさておき。

そもそも、インターフェイスって、「こういう形をしているはずだ」という決まり事のはず。
何か具体的なモノ (object) を期待するのなら、それこそ abstract class にすれば十分なんじゃないかと思うんですが。(今回の List インターフェイスの例なら、 abstract class ListBase implements List {...} とか)

最も、ここで abstract class を持ち出すと、今度は、「多重継承が出来ない」という言語仕様にぶち当たるんですけど。 :p