
if (type.equals("
チーズ
")) {
pizza = new CheesePizza();
} else if (type.equals("
ペパロニ
") {
pizza = new PepperoniPizza();
} else if (type.equals("
アサリ
") {
pizza = new ClamPizza();
} else if (type.equals("
野菜
") {
pizza = new VeggiePizza();
}
オブジェクト作成を
orderPizza()
メソッドから外したほうが
よいことがわかりました。しかし、どのようにするのでしょう
か?
作成コードを取り出し、ピザの作成だけを扱う別のオブ
ジェクトに移動すればよいのです。
Pizza orderPizza(String type) {
Pizza pizza;
pizza.prepare();
pizza.bake();
pizza.cut();
pizza.box();
return pizza;
}
まず、
orderPizza()
メ
ソッドからオブジェクト作
成コードを取り出します。
次に、このコードをピザの作成方法だけを扱う
オブジェクトに入れます。他のオブジェクトで
ピザを作成する必要がある場合は、このオブ
ジェクトを使用します。
この新しいオブジェクトには名前があります。
このオブジェクトはファクトリと呼ばれます。
ファクトリはオブジェクト作成の詳細を処理します。
SimplePizzaFactor ...