Factory Methodパターンを学習したときに、これってAbstract Factoryパターンと何が違うんや?って思ってしまった。このままじゃ気になって夜しか眠れないので、調べてここにメモを残す。
Factory MethodパターンとAbstract Factoryパターンの違い
この二つのデザインパターンの違いは、ただのメソッドかオブジェクトかであると私は解釈した。どういうことかというと、
Factory Methodパターンはメソッド(当然Methodsと書いてないので一つのメソッドを指していると思われる)にインスタンスの生成を委譲する。
それに対しAbstract Factoryパターンはオブジェクトにインスタンスの生成を委譲する。
つまりAbstract FactoryパターンのFactoryオブジェクトは複数のFactory Methodを実装したオブジェクトと言うことが出来る。
終わり
Factory MethodとAbstract Factoryの違いはメソッドか(クラスを実体化した)オブジェクトかである。
どちらも継承を使用して生成処理をサブクラスに委譲している点は恐らく(自信ない)同じ。
Factory Methodを説明するためのサンプルコードでは正直やってることはAbstract Factoryと変わりない気がする。恐らく複雑な状況になれば明確な違いが出てくるのであろう。
コメント