Vedi il codice qui sotto:
public class Customer
{
private readonly IList<Order> _orders = new List<Order>();
public FirstName FirstName { get; set; }
public LastName LastName { get; set; }
public Province Province { get; set; }
public IEnumerable<Order> Orders
{
get { foreach (var order in _orders) yield return order; }
}
internal void AddOrder(Order order)
{
_orders.Add(order);
}
}
Si noti che ho rimosso Obsession Primitive per FirstName; Cognome e Provincia. Si noti che ho anche un elenco di ordini, che viene restituito tramite un oggetto IEnumerable. Ho fatto questa domanda il mese scorso: Che cosa è il vantaggio di incapsulare una raccolta all'interno di una classe?
Ho deciso di non incapsulare l'elenco all'interno di un oggetto alla fine. Tuttavia, questo ha ancora l'odore dell'ossessione primitiva? Sto cercando di evitare l'ossessione primitiva in modo coerente.
Dovrei fare:
private readonly OrderList _orders = OrderList();
Invece di:
private readonly IList<Order> _orders = new List<Order>();