Javaでデザインパターン、しかもiterarerがでてくるということでGoFのデザインパターンという前提で回答します。書いてみたらデザインパターン万歳な文章になりました。聞いてないことまでこたえてごめんなさい。
アルゴリズムとデザインパターンは近いです。しかし、大きな部分で違います。
アルゴリズムは、データ構造を含んだ”解法”のことですが。
(GoFの)デザインパターンは、オブジェクト指向においてのクラス設計のパターンことで、乱暴にいうならデータ構造のことです。
つまり、アルゴリズムは問題に対する”解法”のことで、デザインパターンは問題に対する”データ構造”を主においています。
なぜ、データ構造に名前を付ける必要があったのかということになります。これは私見ですが、オブジェクト指向によって、飛躍的にデータ構造の表現が豊かになったことがあると思います。どのようにクラスを設計するとわかりやすく拡張しやすいコードが書けるのか、ということが出発点だと思っています。
そこで、iteraterのパターンですが、GoFのデザインパターンが出たのが1995年で20年前です。Javaのバージョン1(1996年)もない時代でした。当時の言語仕様では、繰り返しを行うfor-each構文を持つ言語は多くありませんでした。(Javaでは2004年から)
そのため、iteraterを自分で組む必要があったのです。これによってか、各言語でfor-each構文が実装されていきました。結果、デザインパターンの中でもiteraterは不要のものとなっていったのです。
このようにデザインパターンは今ではあまり役に立たなくなったものもありますが、それだけオブジェクト指向でコーディングに大事なものを詰め込んだ定石の一覧となってます。そして、いくつかは現在でも良く利用されているものです。また、クラスの設計を学ぶに当たりすごく良い教科書となると思います。
少なくとも、私はGoFのデザインパターンでオジェクト指向を身に着けました。