• 締切済み

Abstract Factoryパターンについて

JAVAの勉強をしはじめたのはいいのですが、 Abstract Factoryパターンについて 「これを使うことによってどのようなメリットやデメリットがあるか。」 「また、どのような状況において適用されるのか。」 という点が分かりません。 関連するパターンが多いようなのでなるべくしっかりと理解しておきたいのです。 コレについて詳しい説明をお願いします。

みんなの回答

  • lawson
  • ベストアンサー率44% (29/65)
回答No.2

勘違いかもしれませんが。 ↓はAbstract Factoryで作成されている クラスを利用しているコードの例かもしれない。 try { dfactory = DocumentBuilderFactory.newInstance(); dbuilder = dfactory.newDocumentBuilder(); doc = dbuilder.newDocument(); } catch (Exception e) { e.printStackTrace(); } DocumentBuilderFactory.newInstance(); で取得できる具体的な環境依存のファクトリが で取得できる。 そして、 dfactory.newDocumentBuilder(); や dbuilder.newDocument(); は、 具体的な環境依存のファクトリで 作成される。 その環境で動作できる 部品オブジェクト。 ↑のコードの利用者は環境依存の部品を 使っていることを意識せず。 抽象的な部品に対するインターフェースで 利用できる。 たぶん、そんな感じ。 以上

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/xml/parsers/DocumentBuilderFactory.html
  • you-m
  • ベストアンサー率58% (190/327)
回答No.1

参考URLは、わりと簡潔に説明することに成功してると思います。 しかしながら、一つ抑えておかなくてはならないのは、デザインパターンは決してJavaの勉強ではないと言う事です。 デザインパターンは言語に依存しない問題解決技法であり、オブジェクト指向を前提としています。 従って、もし参考URLのサイトを見ても理解できないようであれば、まずオブジェクト指向というものを、きちんと理解する必要があるでしょう。 理解できるときは、唐突にできますが、理解したつもりでも、やっぱりわかってないと言う事は、オブジェクト指向には往々にして多いです。 国内にもJava使いは大勢いますが、正しくオブジェクト指向を理解したJava使いは、実はかなり希少でコードを見るとそれがよくわかります。 デザインパターンは、あくまでオブジェクト指向を正しく理解できている人が次に進むステップです。 オブジェクト指向を理解できていれば、非常にすんなり理解できるような代物になっています。 ちなみに、私自身はJavaの本を読みながらRubyでコーディングしてたRuby使いです。 では、御健闘をお祈りします。

参考URL:
http://www.dmz.hitachi-sk.co.jp/Java/Tech/pattern/gof/abstract_factory.html

関連するQ&A