[428] Re:クラスメソッドとクラス変数
投稿者:タイガー
2007/02/20 02:13:25
>これはまずいのでは。たとえば「コレクション中に同じ要素がないかどうか」を
>二重ループでチェックするような場合、コレクションそのものが位置を保持していると
>ひとつしか持てないので困ります。
確かにその通りですね。良くない設計ですね。
結局、外部Iteratorしかなさそうですね...。
ところでこれって、(ぱ)さんの言われているマルチプルインスタンスの問題ですか?
>方法2. Iteratorクラスを作る。ArrayクラスとLinkedクラスの区別は、
> Iteratorクラスの中に隠す。
> compare()に、Iteratorのインスタンスを渡す。
あと方法2ですが、よく考えてみたらArrayとLinkedの区別をIteratorクラスに隠す
のは良くないですね。if~elseが出てくるので。
ArrayIteratorとLinkedIteratorの両方を用意して、利用者側(クライアント側)が
それを使うしかないですね。クラスの生成部分を抽象化したければJavaみたいに
Factoryで隠せば良いですので。
今回色々勉強になりました。ありがとうございました。