Methodオブジェクトを作成をカプセル化し、依存度を下げるために使います。Factoryと同じ)オブジェクト作成のためのインターフェースを抽象クラス(スーパークラス)に定義しますが、どのクラスをインスタンス化するかについてはサブクラスに決定させます。→抽象クラス(親クラス)は、サブクラスの作成したオブジェクトを利用するだけで具体的なオブジェクトが何なのかを知らない。継承を使うので、サブクラス(子クラス)が作成するオブジェクトの具体的な型を実装する。クラス図でみるとこんな感じfactoryMethodはサブクラスに任せるために、Factoryクラス(スーパークラス)は抽象クラスになる。クラス図からもわかるように、Factoryクラス(スーパークラス)はProdoctオブジェクトを作成する具体的な方法は全く知りませんが、factoryMethodを使えばProdoctオブジェクトを作成できることを知っています。anOperationメソッド内でfactoryMethodを使用することが多いです。地域スタイルでピザの作り方が異なるフランチャイズでの例がありました。FactoryMethodのサンプルコードクラス図はこんな感じ。PizzaStore(スーパークラス)Pizzaオブジェクトを作成する具体的な方法は全く知りませんが、createPizzaメソッドを使えばPizzaオブジェクトを作成できることを知っています。→orderPizzaメソッド内でcreatePizzaを使用して実装している。Pizza抽象Pizzaクラス。PizzaStoreのサブクラスにより、具象Pizzaオブジェクトが作成される。地域ごとの具象PizzaStoreクラス、具象Pizzaクラスがある。そのため、同じチーズピザでも、NY店はゴーダチーズ、Chicago店はモッツアレラチーズにしたり切り方はサブクラスでオーバライドするなど多種多様に対応することができる。メリット2:ChicagoにあるけどNY出身者が多い地区のピザ屋にも対応可能こんなクラスを作ればいい。}}ピザ食べたくなりました。マルゲリータですよね。コメントをキャンセルメールアドレスが公開されることはありません。