うーん、たとえば、僕が思うには、Abstract Factory はTemplate Method パターン
なしには成り立たないでしょ。だけど、Facadeはそういうものではない。

ぐーっと巨視的にみれば、Facadeの極めて特殊な形態として
Abstract Factory(の一部)を捉えることもできるかもしれないけど、
そんなことにどれほどの意味があるの?

Abstract Factoryの目的は、仕様の統一された部品を環境に合わせて
ごっそり取り替えるもの、とはっきり謳われているのだし、
Facadeの目的は、複雑な構造を隠して簡単に見せるものと謳われているわけで、
umlのクラス図を見ても、全然違うよね?

それだけ一見して違うものを、無理やり同一視しても、意味があるとも思えないけど。

デザインパターンというのは、広い意味で、保守性の高いコードって
どういうものなのか、という見抜く目を養うものだと思う。

アブストラクトの使い方とか、テンプレートの使い方とか、
容器と中身の一元化だとか、そのほかいろいろあるけれど、
そういう考え方とかに慣れ親しんで、コードの作成に役立てることが大事で、

○○パターンの○○は、あのパターンの応用であるとか、○○のコードは
○○パターンの実践例である、とかいうことばかりにはまっていくのは、
感心しないように思う。

どうせ実際のコードを書くときなんて、パターンそのままなんて
そうそうあるもんじゃない。デザパタを調べるのは保守性の高いコード
を見抜く目を養うためで、瑣末な構造分析にこだわるのは、
あまり生産性の高い話とも思われない。

あと、Javaを勧めたのはサンプル・コードを動かすためで、それ以外の意味はありません。