我想知道其中哪一个会被认为是最干净或最好用的,为什么。
其中一个公开乘客列表,让用户添加和删除等。另一个隐藏列表,只让用户枚举它们并使用特殊方法添加。
示例 1
class Bus
{
public IEnumerable<Person> Passengers { get { return passengers; } }
private List<Passengers> passengers;
public Bus()
{
passengers = new List<Passenger>();
}
public void AddPassenger(Passenger passenger)
{
passengers.Add(passenger);
}
}
var bus = new Bus1();
bus.AddPassenger(new Passenger());
foreach(var passenger in bus.Passengers)
Console.WriteLine(passenger);
示例 2
class Bus
{
public List<Person> Passengers { get; private set; }
public Bus()
{
Passengers = new List<Passenger>();
}
}
var bus = new Bus();
bus.Passengers.Add(new Passenger());
foreach(var passenger in bus.Passengers)
Console.WriteLine(passenger);
我要说的第一类更好地封装。在这种确切的情况下,这可能是更好的方法(因为您可能应该确保它在公共汽车上留下了空间等)。但我想在某些情况下,二等舱也可能有用?就像班级并不真正关心该列表会发生什么,只要它有一个。你怎么看?