
createPizza()
ChicagoPizzaStore
createPizza()
NYPizzaStore
createPizza()
PizzaStore
NYStyleVeggiePizza
NYStyleClamPizza
NYStylePepperoniPizza
NYStyleCheesePizza
Pizza
ChicagoStyleVeggiePizza
ChicagoStyleClamPizza
ChicagoStylePepperoniPizza
ChicagoStyleCheesePizza
Factory Method
と
Abstract Factory
の比較
ニューヨーク店
地域ごとに異なる製品を作成できるように
したいため、
PizzaStore
はファクトリメ
ソッドとして実装します。ファクトリメソッ
ドを使用して、各地域はその地域に適した
ピザの作成方法を知っている独自の具象
ファクトリを取得します。
サブクラスは、どの具象クラスをイ
ンスタンス化すべきかを決定します。
ファクトリメソッド
これは
PizzaStore
の製品で
す。クライアントはこの抽象
型のみに依存します。
サブクラスを、ファクト
リメソッドでインスタン
ス化します。
ニューヨーク
シカゴ
ファクトリメソッド
NYPizzaStore
サブクラスは、
ニューヨークスタイルのピザだけ
をインスタンス化します。
ChicagoPizzaStore
サブクラ
スは、シカゴスタイルのピザだ
けをインスタンス化します。
シカゴ店
createPizza()
メソッドはピザの種類でパラメータ化されて ...