Фабрика против конструкторов экземпляров

Я не могу придумать никаких причин, почему одно лучше другого. Сравните эти две реализации:

public class MyClass
{
    public MyClass(string fileName)
    {
        // some code...
    }
}

в отличие от:

public class MyClass
{
    private MyClass(){}

    public static MyClass Create(string fileName)
    {
       // some code...
    }
}

В платформе .Net есть несколько мест, в которых для создания экземпляров используется статический метод. Сначала я думал, что он регистрирует свои экземпляры, чтобы отслеживать их, но обычные конструкторы могут делать то же самое с помощью частных статических переменных.

В чем причина этого стиля?

Ответы на вопрос(5)

Ваш ответ на вопрос