en parcourant la documentation sur le propriétés implémentés automatiquement, je suis arrivé sur la page suivante, et ce code m'a intrigué :
Code : Tout sélectionner
// This class is immutable. After an object is created,
// it cannot be modified from outside the class. It uses a
// static method and private constructor to initialize its properties.
public class Contact2
{
// Read-only properties.
public string Name { get; private set; }
public string Address { get; }
// Private constructor.
private Contact2(string contactName, string contactAddress)
{
Name = contactName;
Address = contactAddress;
}
// Public factory method.
public static Contact2 CreateContact(string name, string address)
{
return new Contact2(name, address);
}
}
Ma question : quel intérêt y-a-t-il à déclarer cette méthode de fabrique publique qui appelle le constructeur privé, plutôt que de déclarer le constructeur public ?