Det var nyligen en tråd aktiv, där exponering av listor diskuterades:
http://www.webforum.nu/showthread.php?t=170843
Nedan är två alternativ på hur ett kundobjekt kan se ut. Vilket av alternativen föredrar du och varför?
Alternativ 1
public class Customer
{
private List<Order> _orders = new List<Order>();
...
public ReadOnlyCollection<Order> Orders
{
get { return _orders.AsReadOnly(); }
}
public AddOrder(Order order)
{
_orders.Add(order);
}
}
I alternativ 1 kan enbart en ny order läggas till via metoden AddOrder.
Alternativ 2
public class Customer
{
private List<Order> _orders = new List<Order>();
...
public List<Order> Orders
{
get { return orders; }
set { orders = value; }
}
}
I alternativ 2 så kan man lägga till en ny order via följande kodrad:
customer.Orders.Add(order)
Vilket alternativ är att föredra enligt dig och varför?
