結局OOpが役に立たないのはなぜ?
■ このスレッドは過去ログ倉庫に格納されています
0191デフォルトの名無しさん
2010/04/24(土) 16:41:35通常は次のようにクラス定義でComparableインターフェイス
のようなものを実装すると思います。
interface Comparable {
boolean equals(Object o);
}
class MyClass implements Comparable {
boolean equals(Object o) {
//
}
}
しかし、呼び出し側で必要な操作セットはプログラムによって異なるため、
このようなインターフェイスをクラスの作成時に網羅して準備するのは不可能です。
ならばMyClassはimplementsのないシンプルなものにしておいた方が良いというのも理解できます。
その場合に、もしequalsを実装しているクラスの集合を「呼び出し側で」定義でき、
それを使ってポリモで呼び出せるならば、その方がシンプルで良さそうな気がします。
implements Comparable { MyClass, SomeClass, ... } // 構文は適当です
Comparable c[2];
c[0] = new MyClass;
c[1] = new SomeClass;
// この後、ポリモで使う
if (c[n].equals(something)) { // }
■ このスレッドは過去ログ倉庫に格納されています