7

私が理解しているように、Factory Method は Simple Factory で、Factory Object は Abstract Factory ですか? と:

-工場方式 (簡易工場):

public class SimplePizzaFactory {
    public static final int CHEESE = 1;
    public static final int PEPPERONI = 2;
    public static final int VEGGIE = 3;

    public static Pizza createPizza(int type) {
        Pizza pizza = null;

        if (type == CHEESE) {
            pizza = new CheesePizza();
        } else if (type == PEPPERONI ) {
            pizza = new PepperoniPizza();
        } else if (type == VEGGIE ) {
            pizza = new VeggiePizza();
        }

        return pizza;
    }
}

ファクトリ オブジェクト (抽象ファクトリ):

?

私は正しいですか?

Factoryパターンの実現はどのくらいあり、それらの違いは何ですか?

4

1 に答える 1

6

いいえ。ファクトリ メソッドは、状態を必要としないファクトリです。ファクトリ クラスはクラスそのものです。状態と、その状態を変更するメソッドがあります。最後にメソッドを呼び出すと.create()、現在の状態を使用して別のタイプの新しいオブジェクトが作成されます。

抽象ファクトリは別のものです。同じ抽象概念の複数のファクトリ実装があります。ウィキペディアの例は e に関するものです。これは、とGUIFactoryの 2 つの実装を持つ抽象ファクトリです。クライアント コードは、使用している実装を認識しません。ファクトリがインスタンスを作成することを認識しているだけです。これにより、OS に関係なく同じコードを記述できます。WinFactoryOSXFactoryButton

于 2012-02-02T18:58:00.243 に答える