「具体例で説明するデザインパターン」はかなり間違ってる

具体例で説明するデザインパターンが半分以上、しかも全然違う説明をしているので、念のためツッコんでおきます。

Factory Method

間違い。サブクラス側で生成するオブジェクトを変えられるように、生成処理をメソッドに追い出すのがFactory Methodパターンです。たとえばツリー構造など、入れ物と要素が組になるコレクションクラスを作った場合、コレクションクラス内で要素を普通にnewしてしまうと、コレクションのサブクラスを作った際に要素のクラスが変えられないという問題が起ります。生成処理をメソッドに切り出しておけば、オーバーライドすれば変えられるので安心という訳です。

ドキュメントベースのアプリケーションフレームワークでは、ドキュメントオブジェクトを生成するためにFactory Methodパターンが使われているのが見られます。

Abstract Factory

間違い。DOMツリーの要素の様に、互いに関連するクラス群を生成するためのインターフェースを提供するものです。クラス名を直接指定して生成させないことで実装の実体を隠すことができ、柔軟な実装にすることができます。たとえばHTMLTableElementと思っているものは、実際はそのインターフェースを持っている別の何かかもしれません。

DOMのdocumentオブジェクトがまさにAbstruct Factoryです。具体例はむしろFactory Methodの方ものが近いでしょう。

Builder

間違い。Builderは、何かを生成する処理を、生成する手順を知っている人(Director)と、生成する具体的な手段を持つ人(Builder)に分離するというパターンです。

Visitorパターンの具体例にあるSAXパーサの例が近いものになるでしょう。SAXパーサがDirectorで、それに渡されているDefaultHandlerクラスの匿名クラスがBuilderにあたります。Builderを変えればDOMツリーも生成できます。

Prototype

Prototypeパターン自体の説明は間違っていませんが、JavaScriptのprototypeプロパティはこのパターンと関係ないものなので余計です。

Singleton

説明が誤った使い方の方のSingletonになっています。グローバルにひとつだけ存在し、グローバルにアクセスする手段があるためグローバル変数と同じように扱えますが、「インスタンスが1つしかないことを保証する」という方が本来の使い方です。

Iterator

具体例が間違っています。これは単にLinked Listを辿っているだけでIteratorではありません。jQuery の例もLinked Listを辿る処理をC言語風のfor文を使って書く際の定型句です。

Visitor

間違い。Visitorは、ツリーのような複数のオブジェクトを組み合わせて作られる構造から、その構造を走査して行う処理を分離するためのものです。処理の種類を増やすことは容易になりますが、その代わりに要素の種類を増やすのは面倒になります。Vistorパターンのポイントは、処理を行うオブジェクト(Vistor)を一度要素に渡して、その要素がVistorオブジェクトのメソッドを呼び出すところです。必要な処理は要素の種類ごとに異なるので、要素の方から自分にふさわしいメソッドを呼び出してもらうわけです。