インターフェイスを 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