Ho un po 'di codice:
/// <summary>
/// Represents Record Locator class
/// </summary>
public class RecordLocator : IRecordLocator
{
/// <summary>
/// The Record Locator string, for example: ZT8C4O
/// </summary>
public string Name { get; private set; }
/// <summary>
/// Initializes a new instance of the <see cref="RecordLocator"/> class.
/// </summary>
/// <param name="recordLocator">The record locator string.</param>
private RecordLocator(string recordLocator)
{
Name = recordLocator;
}
/// <summary>
/// Parses the specified record locator.
/// </summary>
/// <param name="recordLocator">The record locator string.</param>
/// <returns></returns>
public static IRecordLocator Parse(string recordLocator)
{
if (string.IsNullOrEmpty(recordLocator))
throw new ArgumentNullException("recordLocator");
if (recordLocator.Length != 6)
throw new ArgumentException("recordLocator.Length != 6");
return new RecordLocator(recordLocator);
}
}
/// <summary>
/// Represents Record Locator interface
/// </summary>
public interface IRecordLocator : IHideObjectMembers
{
/// <summary>
/// The Record Locator string, for example: ZT8C4O
/// </summary>
string Name { get; }
}
-
Come si chiama questo modello di progettazione? Quando hai una classe, che si istanzia da sola (e probabilmente ha un costruttore privato)? Un altro esempio è la classe
System.DateTime
di .NET framework. -
È corretto farlo in quel modo?