В последнее время я много читал о фабричном шаблоне. Я пытаюсь найти лучший способ его реализации. В книге 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();
}
}
Пожалуйста, скажите мне, что вы думаете? Или, может быть, есть лучший способ реализовать фабричный шаблон?