Лучший способ построить фабрику

В последнее время я много читал о фабричном шаблоне. Я пытаюсь найти лучший способ его реализации. В книге C # Agile принципы шаблонов и практики, рекомендация заключается в создании фабрики, как это:

public class ShapeFactoryImplementation : ShapeFactory {
    public Shape Make(string name) {
        if (name.Equals("Circle"))
            return new Circle();
        else if (name.Equals("Square"))
            return new Square();
        else
            throw new Exception("ShapeFactory cannot create: {0}", name);
        }
    }

, а не .....

public class ShapeFactoryImplementation : ShapeFactory {
    public Shape MakeCircle() {
        return new Circle();
    }

    public Shape MakeSquare() {
        return new Square();
    }
}

Пожалуйста, скажите мне, что вы думаете? Или, может быть, есть лучший способ реализовать фабричный шаблон?

6
задан Yuck 31 August 2011 в 11:39
поделиться